给定4x4均匀矩阵,我如何获得3D世界坐标?

时间:2011-01-25 09:22:44

标签: opengl 3d matrix geometry picking

所以我有一个旋转的物体然后再翻译和旋转。我将这些翻译的矩阵存储为对象成员。现在当我来对象挑选时,我需要知道这个物体的3D世界坐标。

目前我已经能够像这样获得对象的位置

coords[0] = finalMatrix[12];

coords[1] = finalMatrix[13];

coords[2] = finalMatrix[14];

这给了我正确的物体位置,但我也想考虑旋转。

任何帮助都会很棒......

3 个答案:

答案 0 :(得分:2)

矩阵是一个4x4矩阵,但是由于你只有一个单维矩阵,所以元素的排列如下:

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

旋转部分是左上角3x3矩阵see here,因此在您的情况下,它将是元素[0]-[2][4]-[6][8]-[10]

答案 1 :(得分:2)

http://www.euclideanspace.com/maths/geometry/affine/matrix4x4/index.htm - 以下是4x4矩阵如何工作的解释。第一个次要3x3 - 是一个旋转矩阵。除最后一个元素之外的最后一列是翻译向量。元素[4,4]是比例因子。在链接中了解更多相关信息

答案 2 :(得分:2)

所以我是个白痴......我首先把它弄好了。我需要的只是[12] [13] [14]中的位置数据。我的代码中有一些愚蠢的错误,其中一个在我的光线交叉点上没有足够的迭代...所有排序现在大声笑我自己踢...哈哈谢谢无论如何男人们!