中心点の長方形上で長方形を回転させたい。
たとえば、サイズが41x21の長方形のグリッドがあります。
だから私の中央の長方形は20x10
次に、中央の長方形に沿って22x14から90度回転させます。
22x14を回転させる式はどうなりますか。
どんな助けでも素晴らしいでしょう。
一般に、セルを平面に投影し、次に回転行列を使用してから、セルをグリッドに投影し直します。この例では、やり過ぎですが、それでも機能します。
原点を(0,0)ではなく(21,11)に設定する必要があるため、最初にポイントを変換します
[x'] := [x - 21]
[y'] [y - 11]
次に、回転行列変換を適用します(従来の軸の方向を想定していることに注意してください)
[x''] := [ cos(-Pi/2) -sin(-Pi/2) ][x'] = [ y']
[y''] [ sin(-Pi/2) cos(-Pi/2) ][y'] [-x']
次に、原点の翻訳を解除します。平面が正方形ではなかったため、結果として回転する平面は異なる形状になります(原点が11,21の場合の寸法は21x41です)。私はこれがあなたが望んでいたことであり、あなたはポイントが飛行機から「落ちる」ことができることを望まなかったと思いました。
[x'''] := [x'' + 11]
[y'''] [y'' + 21]
代数を単純化すると、これは要約するとマップになります
[x] -> [ y ]
[y] [42-x]
答え
(22,14)は(14,20)に回転します
注:1から数えて、41x21の中心を20x10ではなく21x11にしますか?