给定一个具有矩阵的平面,该矩阵既可以平移也可以缩放它,我有一个只能平移但不能缩放的叠加点,并且必须保持在平面上的同一个点上。如果使用以下变换翻译平面,例如:
matrix(1,0,0,1,33,33);
我可以在这一点上匹配它。
但是,如果矩阵看起来像这样:
matrix(1.5,0,0,1.5,33,33);
我不能只匹配它,因为点的大小会缩放。
如何在不缩放点的情况下找到将点移动到与平面匹配的平移? 对不起,如果看起来很明显,我有点数学挑战。
答案 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对,您可以标准化以自行计算旋转角度而无需缩放。