1

我正在使用旋转将我在屏幕上显示的矩形旋转 θ° 度。我的顶点矩形矩阵是:

我的矩形顶点矩阵

其中第一列是 x 值,第二列是 y 值。我像这样加载我的顶点:bottomLeft (2,4), topLeft (2,5), topRight (3,5),最后是 bottomRight (3,4)

接下来我将它与旋转矩阵相乘:

旋转矩阵

最后,一旦计算完成,我会得到一组新的顶点:

新的顶点集

这很好,除了一个问题,它围绕(0,0) 的中心点旋转。我希望它围绕我的bottomLeft 顶点(2,4)(我的矩阵中这个矩形的第一个顶点)旋转。我该怎么做呢?我该怎么做才能围绕我的 bottomLeft 顶点旋转它(基本上将(0,0) 的中心点更改为 (2,4) 作为我的中心)?

4

1 回答 1

1

所有旋转都将围绕原点完成,因此您必须将矩形移动到原点,旋转它,然后将其移回。

如果您使用仿射变换,您可以使用矩阵乘法来完成所有三个操作,并且您可以拥有一个同时执行所有三个操作的矩阵。如果您的旋转矩阵必须保持 2x2,那么您必须手动进行平移(即移动)。

这个答案显示了如何为点旋转组合变换。

于 2013-09-30T03:00:01.673 回答