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