Как создать локтевой соединитель с нуля программно? - PullRequest
1 голос
/ 24 мая 2019

«Угловой соединитель» в MS-Word представляет собой трехсегментную линию с контрольной точкой посередине, как показано

see image here

где, если я переместлю желтую контрольную точку вбок, длина двух линий с обеих сторон изменится соответственно, в то время как конечные точки останутся прежними. (Пожалуйста, игнорируйте "2" на картинке)

Я пытаюсь понять, как это работает, чтобы я мог воссоздать это. Есть ли «линейное уравнение» для такой линии? У меня есть некоторые точки (x, y), которые уже имеют форму этого коленчатого соединителя, но я хотел бы включить функциональность изменения линий с обеих сторон путем управления контрольной точкой. Как бы я занялся воссозданием этого?

1 Ответ

1 голос
/ 24 мая 2019

Разбивая строки как:

enter image description here

Для перемещения центра (M) только вбок, длина линий 2 и 3 остается неизменной, поэтому возникает проблема, как рассчитать длину (и направление) линий 1 и 4.
Это можно рассчитать как:

line1_length = B.x - M.x;
line4_length = M.x - A.x;

Для инструкций сравнение должно быть сначала сделано как:

if(B.x > M.x)...
.
.
.
if(M.x > A.x)...
.
.
.

Начальные точки уже известны как положение A и положение B. Зная длину и направления линий 1 и 4, можно определить конечные точки.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...