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

Как в Illustrator, например. Т.е., захват кривой с помощью мыши и перемещение мыши на определенное расстояние.

Это похоже на топи c: Перетащите кривую Безье, чтобы отредактировать ее

Я пытался воспроизвести ответ tfinniga :

P1 = P1 + k1 * V;
P2 = P2 + k2 * V;

P0 и P3 должны остаться на месте.

Даже при добавлении 1 к K результат не соответствует ожиданиям.

изображение, точка сдвинута на 100 вверх

1 Ответ

0 голосов
/ 15 апреля 2020

Вы неправильно поняли ответ из сообщения tfinniga .

Из сообщения tfinniga , у нас есть

P = k0*P0 + k1*P1 + k2*P2 + k3*P3 and 
P' = k0*P0' + k1*P1' + k2*P2' + k3*P3'

Поскольку вам требуются P0 и P3 без изменений, у нас есть два идентификатора для V

V = k1*(P1'-P1) + k2*(P2'-P2)

и

V = P' - P0

Итак, вы можете выбрать

  P1' = P1 + c/k1 * V, 
  P2' = P2 + (1-c)/k2 * V

, где c - это константа от 0 до 1.

...