我有一个贝塞尔路径存储为几个点的数组,每个点都是 [cp1x,cp1y,cp2x,cp2y,x,y] 形式的坐标数组。
我希望能够上下缩放这条路径以调整其大小,但我不知道这样做的数学。我尝试对每个坐标值应用一个系数,但这似乎不起作用。
有谁知道如何实现这一目标?
在标准表示中,点P代表空间中的实际点,因此您可以像任何其他点一样移动它们。那就是对它们进行缩放,只需将所有内容乘以缩放因子:说它是a
,那么就是[a*cp1x,a*cp1y,a*cp2x,a*cp2y,a*x,a*y]
,或者如果你想单独缩放x
,你可以对和组件y
使用不同的因子。x
y
另请注意,这将相对于 origin 缩放事物(x=0, y=0)
,因此如果您在原点没有任何曲线,它可能看起来像移位。如果您想否定这种转变的影响,您可以分别从和值 中减去Px
和,其中和是您在缩放时不希望移动的点,然后再进行缩放(然后在您多次添加它之后,如果您想要)。但是,如果您要做的是缩放整个画布,例如从 5x5 英寸到 7x7,那么您会希望在没有任何变化的情况下进行乘法运算(在本例中为 7./5)。Py
x
y
Px
Py