4

だから私は、回転し、翻訳され、再び回転しているオブジェクトを持っています。これらの翻訳の行列をオブジェクト メンバーとして格納しています。オブジェクト ピッキングに来たら、このオブジェクトの 3D ワールド座標を知る必要があります。

現在、私はそのようにオブジェクトの位置を取得することができました

coords[0] = finalMatrix[12];

coords[1] = finalMatrix[13];

coords[2] = finalMatrix[14];

これにより、オブジェクトの正しい位置が得られますが、回転も考慮したいと思います。

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

4

3 に答える 3

2

マトリックスは 4x4 マトリックスですが、1 次元のマトリックスを取得したばかりなので、要素は次のように配置されているように見えます。

[0]  [4]  [8]   [12]
[1]  [5]  [9]   [13]
[2]  [6]  [10]  [14]
[3]  [7]  [11]  [15]

回転部分は左上の 3x3 マトリックスで、こちらを参照してください。したがって、あなたの場合は elements[0]-[2][4]-[6]なり、[8]-[10]

于 2011-01-25T09:30:39.513 に答える
2

http://www.euclideanspace.com/maths/geometry/affine/matrix4x4/index.htm - 4x4 行列がどのように機能するかについての説明です。最初のマイナー 3x3 - は回転行列です。最後の要素を除く最後の列は平行移動ベクトルです。element[4, 4] は倍率です。これについて詳しくは、リンクを参照してください

于 2011-01-25T10:16:23.820 に答える
2

だから私はばかです... そもそもそれが正しかったのです。必要なのは [12][13][14] の位置データだけでした。私のコードにはいくつかのばかげたバグがありました。そのうちの 1 つは、レイの交差点で十分な反復が行われていませんでした。

于 2011-01-26T09:53:13.137 に答える