2012-02-22 17 views
0

いくつかのグラフィカルプログラミングにXNA(DirectXを使用)を使用しています。私はある点を中心に回転するボックスを持っていたが、回転はちょっと奇妙である。XNA/Directx Handedness(orientation)?

すべてが、私はそれほど、方向性を述べてソースを見つけることができないよう

... Nが180になるように、誰かが、コンパスを取り、それを180度回転させるように、Wはなど、90であると思われます私はおそらくちょうど適切なキーワードを使用していないでしょう。

誰かがXNA/DirectXの方向性について知ることができますか?

+1

これは関連していてもよい。http://stackoverflow.com/questions/3527531/xna-question-about-rotation – SpartanDonut

答えて

8

DirectXは左利きの座標系を使用します。

xNA 右利き座標系を使用します。

  • 前方は-Z、後方は+ Zです。フォワードは画面をポイントします。
  • 右は+ X、左は-Xです。右は画面の右側を指します。
  • アップは+ Y、ダウンは-Yです。上は画面の上を指します。

マトリックスレイアウトは次のとおりです(この例では単位行列を使用しています)。 XNAはその行列に行レイアウトを使用します。最初の3つの行は方向を表します。最後の行と最初の3つの列([4,1]、[4,2]、および[4,3])は変換/位置を表します。ここにはXNA's Matrix Structureに関するドキュメントがあります。変換行列の場合

(翻訳が組み合わさ位置と回転である):

Right  1 0 0 0 

Up  0 1 0 0 

Forward 0 0 -1 0 

Pos  0 0 0 1 
+1

私はこの古代のポストを見つけましたが、なぜXNA.Vector3.Forwardが私に "0,0、-1"を返すのか不思議です。あなたのマトリックスが示すように、なぜRHCシステムが0,0,1であるべきなのか、どんな考えがありますか。 – PhillipH

+0

フィリップ、前方IS 0、0、-1、私のポストは誰も言及しなかったタイプミスを持っていました。 –

+0

ああ、謎解き:-) – PhillipH

関連する問題