AS3 Как найти контрольную точку кривой Безье на основе того, где пользователь рисует линию с помощью мыши - PullRequest
0 голосов
/ 23 апреля 2019

Im Попытка создать кривую Безье с начальной точкой, в которой мышь впервые нажата, и конечной точкой, где она отпущена.Контрольная точка должна быть самой дальней точкой от начальной и конечной точек, есть ли способ сделать это без сохранения всех позиций мыши в массиве.

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

1 Ответ

0 голосов
/ 24 апреля 2019

При таком подходе вам определенно необходимо сохранять позиции мыши в массиве.

Представьте, что вы щелкнете в правой правой части экрана, затем переместите мышь, чтобы примерно нарисовать две буквы W назад, а затем отпустите мышь в средней левой части экрана.

Очевидно, что контрольная точка должна находиться на одной из нижних точек W, но какая именно? Вы должны измерить расстояние между вашей начальной и конечной точками для каждого кандидата, чтобы выяснить, где находится самая дальняя точка.

Совет : Может быть полезно иметь механизм для явного объявления контрольной точки. Может быть, нажмите один раз, чтобы установить контрольную точку, затем нажмите и перетащите, чтобы определить конечные точки кривой? Или отслеживайте клики на холсте: первая - это начальная точка, вторая - контрольная точка, третья - конечная точка. В зависимости от ограничений вашего проекта может быть много вариантов.

...