4

Yaw、Pitch、Roll を指定して、「ワールド座標」で Front (または Look At)、Right、および Up ベクトルを生成できる関数が必要です。

私の特定のワールド空間では、原点 (0,0,0) から始めて、X は左側が正、Z は視聴者/原点から離れる方向が正、Y は上方向が正です。

たとえば、与えられた... (度単位の角度)

  • ヨー = 0、ピッチ = 0、ロール = 0、期待される出力は次のとおりです。

    • フロント = (0.0,0.0,1.0)
    • 右 = (-1.0,0.0,0.0)
    • アップ = (0.0,1.0,0.0)
  • ヨー=90、ピッチ=0、ロール=0、期待される出力は次のとおりです。

    • フロント = (1.0,0.0,0.0)
    • 右 = (0,0,0.0,1.0)
    • アップ = (0.0,1.0,0.0)
  • ヨー = 0、ピッチ = 90、ロール = 0、期待される出力は次のとおりです。

    • フロント = (0.0,1.0,0.0)
    • 右 = (-1.0,0.0,0.0)
    • アップ = (0.0,0.0,-1.0)
  • ヨー = 0、ピッチ = 0、ロール = 90、期待される出力は次のとおりです。

    • フロント = (0.0,0.0,1.0)
    • 右 = (0.0,1.0,0.0)
    • アップ = (1.0,0.0,0.0)

私が使用している言語は C++ です。この問題を解決するのが最も理にかなっていれば、喜んで glm を使用します。クォータニオンを介してそこにたどり着くことができれば、オイラー角からクォータニオンを取得する方法を説明する他のチュートリアルを見つけたので、その解決策でも問題ありません。

4

1 に答える 1