矩形坐标旋转



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

例如,我有尺寸为 41 x 21 的矩形网格

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

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

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

任何帮助都会很棒。

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


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

最新更新