给定一个点和一个平面,当平面缩放而不缩放点时,如何平移该点以匹配平面?

时间:2013-12-01 03:24:13

标签: javascript jquery css math matrix

给定一个具有矩阵的平面,该矩阵既可以平移也可以缩放它,我有一个只能平移但不能缩放的叠加点,并且必须保持在平面上的同一个点上。如果使用以下变换翻译平面,例如:

matrix(1,0,0,1,33,33);

我可以在这一点上匹配它。

但是,如果矩阵看起来像这样:

matrix(1.5,0,0,1.5,33,33);

我不能只匹配它,因为点的大小会缩放。

如何在不缩放点的情况下找到将点移动到与平面匹配的平移? 对不起,如果看起来很明显,我有点数学挑战。

1 个答案:

答案 0 :(得分:0)

一个点没有大小,它只是一个位置。缩放+旋转是坐标之间的变换,因此缩放实际上是到原点的距离的缩放,而不是对象本身的缩放。对于矩形,这意味着将变换应用于每个角落。对于一个点,它意味着将(整个)变换应用于该点。

是什么让你认为这一点会被缩放?

如果您只想应用旋转变换而不是缩放变换,那么假设您的矩阵定义是CSS矩阵(https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function),那么列表是a,b,c,d,tx,ty 。旋转为

[cos(a) -sin(a) sin(a) cos(a) 0 0]

因此,如果您使用a,b对和c,d对,您可以标准化以自行计算旋转角度而无需缩放。