XNA / Directx Handedness(方向)?

时间:2012-02-22 17:14:45

标签: xna directx rotation orientation screen-orientation

我正在使用XNA(使用DirectX)进行一些图形编程。我有一个围绕一个点旋转的盒子,但旋转有点奇怪。

似乎有人拿了一个指南针并将其旋转了180度,因此N为180,W为90等。

我似乎无法找到说明方向的来源,所以我可能只是没有使用正确的关键字。

有人可以帮我找到XNA / DirectX的定位,以及一个说明这一点的页面吗?

1 个答案:

答案 0 :(得分:8)

DirectX使用左手坐标系。

<强> XNA 使用右手坐标系。

  • 前进是-Z,后退是+ Z.将点转发到屏幕上。
  • 右边是+ X,左边是-X。正确指向屏幕右侧。
  • 向上是+ Y,向下是-Y。点到屏幕顶部。

矩阵布局如下(在此示例中使用单位矩阵)。 XNA为其矩阵使用行布局。前三行代表方向。最后一行和前三列([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