矩形坐标旋转

时间:2012-05-09 17:20:48

标签: math rotation

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

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

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

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

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

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

通常,将单元格投影到平面上,然后使用rotation matrix,然后将单元格投影回网格。对于这个例子,它的矫枉过正,但仍然有效。


你需要将你的原点设置为(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?