我想在中心点矩形上旋转矩形。
例如,我有大小为41 x 21的矩形网格
所以我的中心矩形是20 x 10
现在我想沿中心矩形旋转22 x 14到90度。
旋转22 x 14的公式是什么。
任何帮助都会很棒。
答案 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?