- ベストアンサー
角度の左右・上下反転について
- ゲーム制作の要素として、角度を左右・上下に反転させる処理が必要です。
- 角度の左右反転は、現在の角度に180度を加えた値になります。
- 角度の上下反転は、360度から現在の角度を引いた値になります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
基準の向きを上方向(i)とする iから t°回転して左右反転すると t=0の時,iから0°になり 0<t<360°の時,iから(360-t)°になる iから t°回転して上下反転すると 0≦t≦180°の時,iから(180-t)°になる 180°<t<360°の時,iから(540-t)°になる iから左回りに tだけ回転すると iにe^{it}をかけたものになり ie^{it}=icost-sint ie^{it}を 左右反転すると ie^{it}の共役複素数に-1をかけたものになり -[ie^{it}]~ =sint+icost =i(cost-isint) =ie^{-it} だから iから左回りに2nπ-tだけ回転する 0≦2nπ-t<2π だから t=0の時n=0で2nπ-t=0 0<t<2πの時n=1で2nπ-t=2π-t ie^{it}を 上下反転すると ie^{it}の共役複素数になり [ie^{it}]~ =-sint-icost =i(-cost+isint) =i{cos(π-t)+isin(π-t)} =ie^{i(π-t)} だから iから左回りに(2n+1)π-tだけ回転する 0≦(2n+1)π-t<2π だから 0≦t≦πの時n=0で(2n+1)π-t=π-t π<t<2πの時n=1で(2n+1)π-t=3π-t
その他の回答 (2)
- jcpmutura
- ベストアンサー率84% (311/366)
基準の向きを上方向(i)とする iから右回りにtだけ回転すると iから左回りに-tだけ回転するから iにe^{-it}をかけたものになり ie^{-it}=i(cost-isint)=icost+sint ie^{-it}を 左右反転すると ie^{-it}の共役複素数に-1をかけたものになり -[ie^{-it}]~ =-(icost+sint)~ =-(sint-icost) =-sint+icost =i(cost+isint) =ie^{it} =ie^{i(t-2nπ)} だから iから左回りにt-2nπだけ回転するから iから右回りに2nπ-tだけ回転する 0≦2nπ-t<2π だから t=0の時n=0で2nπ-t=0 0<t<2πの時n=1で2nπ-t=2π-t ie^{-it}を 上下反転すると ie^{-it}の共役複素数になり [ie^{-it}]~ =(icost+sint)~ =sint-icost =i(-cost-isint) =i{cos(t-π)+isin(t-π)} =ie^{i(t-π)} =ie^[i{t-(2n+1)π}] だから iから左回りにt-(2n+1)πだけ回転するから iから右回りに(2n+1)π-tだけ回転する 0≦(2n+1)π-t<2π だから 0≦t≦πの時n=0で(2n+1)π-t=π-t π<t<2πの時n=1で(2n+1)π-t=3π-t
点P(x, y)を「原点」のまわりにφだけ回転するとき、移動先P'の座標を求めるには、 R(φ)=(cosφ -sinφ / sinφ cosφ)=(c -s / s c) を左からかけます。また、x軸についての対称移動は、 (1 0 / 0 -1) をかけ、y軸についての対称移動は、 (-1 0 / 0 1) をかけることで実現します。したがってこれらの合成を考えると、 ● まずθだけ回転しさらにy軸について対称移動するときPの移動先P'は、 (-1 0 / 0 1)*(c -s / s c)=(-c s / s c) をかけることです。 ● まずθだけ回転しさらにx軸について対称移動するときPの移動先P'は、 (1 0 / 0 -1)*(c -s / s c)=(c -s / -s -c) をかけることです。 ----------------------------- ※計算ミス、タイプミスがあればご指摘ください。
補足
座標のことを解説されているようですが、左右反転・上下反転させたときの「角度」を求める公式についての質問です。 質問文中で例示したように左右反転・上下反転したときの「角度」を求めたいのです。 イメージとしては、ある方向を指している矢印があり、その矢印を左右反転・上下反転させた時に上方向を0度とする場合何度回転しているかというものです。 なお、ベクトルは実装していますが行列については実装していないため、できればベクトルのみで完結するとありがたいです。 なお追記となりますが角度はプラス方向で時計回り、マイナス方向で反時計回りとなります。 言葉が足らず申し訳ございません。
お礼
度数法・弧度法双方についての公式を挙げていただきありがとうございました! 2つ回答をいただいておりますが度数法の公式を挙げていただいたこちらの回答をベストアンサーとさせていただきます。
補足
度数法での公式、弧度法での公式を双方挙げていただきありがとうございます! 弧度法の公式ですが、プラス方向が左方向への回転(反時計回り)になっているようです。 ゲームの仕様が右方向への回転(時計回り)をプラス方向とするのですが、右方向をプラス方向とする場合でも、同様の計算方法で適応可能でしょうか?