0

我想在中心点矩形上旋转矩形。

例如,我有大小为 41 x 21 的矩形网格

所以我的中心矩形是 20 x 10

现在我想沿着中心矩形旋转 22 x 14 到 90 度。

旋转 22 x 14 的公式是什么。

任何帮助都会很棒。

4

1 回答 1

0

通常,将单元格投影到平面上,然后使用旋转矩阵,然后将它们投影回网格中。对于这个例子,它有点矫枉过正,但仍然有效。


您需要将原点设置为 (21,11) 而不是 (0,0) 所以首先翻译您的点

[x'] := [x - 21]
[y']    [y - 11]

然后应用旋转矩阵变换(注意我假设轴的传统方向)

[x''] := [ cos(-Pi/2)   -sin(-Pi/2) ][x']      =  [ y']
[y'']    [ sin(-Pi/2)    cos(-Pi/2) ][y']         [-x']

然后取消翻译原点。因为你的平面不是方形的,所以旋转后的平面是不同的形状(它的尺寸为 21x41,原点为 11,21)。我假设这就是您想要的,并且您不希望点能够“从飞机上掉下来”。

[x'''] := [x'' + 11]
[y''']    [y'' + 21]

简化代数,这归结为地图

[x]  ->  [  y ]
[y]      [42-x]

回答

(22,14) 旋转到 (14,20)


注意:从 1 开始,我把 41x21 的中心设为 21x11,而不是 20x10?

于 2012-05-09T18:45:04.730 回答