如何通过用鼠标移动贝塞尔曲线的点来改变它?

时间:2020-04-15 15:13:18

标签: bezier

例如,在Illustrator中。即,用鼠标抓住曲线并将鼠标移动一定距离。

这是一个类似的主题: Drag a bezier curve to edit it

我试图重现 tfinniga 的答案:

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

P0和P3必须保留在原处。

即使将K加1,结果也不符合预期。

image, point shifted 100 up

1 个答案:

答案 0 :(得分:0)

您误解了 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之间的常量。