0

中心点の長方形上で長方形を回転させたい。

たとえば、サイズが41x21の長方形のグリッドがあります。

だから私の中央の長方形は20x10

次に、中央の長方形に沿って22x14から90度回転させます。

22x14を回転させる式はどうなりますか。

どんな助けでも素晴らしいでしょう。

4

1 に答える 1

0

一般に、セルを平面に投影し、次に回転行列を使用してから、セルをグリッドに投影し直します。この例では、やり過ぎですが、それでも機能します。


原点を(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にしますか?

于 2012-05-09T18:45:04.730 に答える