我正在使用旋转来旋转我在屏幕上显示的矩形 θ°。我的顶点矩形矩阵是:
第一列是x值,第二列是y值。我加载我的顶点如下: bottomLeft(2,4),topLeft(2,5),topRight(3,5),最后是bottomRight(3,4)。
接下来,我将它与旋转矩阵相乘:
最后一旦计算完成,我得到一组新的顶点:
这很好,只有一个问题在这里,它围绕中心点(0,0)旋转。我希望它围绕我的 bottomLeft顶点(2,4)(我矩阵中第一个这个矩形的顶点)旋转。我该怎么做呢?我需要做什么才能围绕我的bottomLeft顶点旋转它(基本上将中心点(0,0)更改为(2,4)作为我的中心)?
答案 0 :(得分:1)
所有旋转都将围绕原点进行,因此您必须将矩形移动到原点,旋转它,然后将其移回。
如果您使用Affine Transforms,您可以使用矩阵乘法完成所有三个,并且您可以使用单个矩阵同时执行所有三个操作。如果您的旋转矩阵必须保持2x2,那么您必须手动进行平移(即移动)。
This answer显示了如何为点旋转组合变换。