OpenGL:如何在变换后获取特定点的坐标?

4
假设我有一个点在(250,125,-20)。 经过以下变换后,
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(100.0, 50.0, 0.0);
glRotatef(-25.0, 0.0, 1.0, 0.0);    

如何获取该点的当前坐标值? 我需要编写一个子程序来将矩阵乘以向量吗? 是否有任何内置解决方案?

1个回答

7

在变换后,无法获取特定顶点(点)的坐标,但是对于这种情况,您可以在应用平移/旋转后获取ModelViewMatrix

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(100.0, 50.0, 0.0);
glRotatef(-25.0, 0.0, 1.0, 0.0);  

glGetFloatv(GL_MODELVIEW_MATRIX , *your_matrix*);
//print your matrix to check if that is the desired transformation coordinates

OpenGL中没有魔法带,您需要编写自己的框架,例如:为世界中的每个对象编写一个类,在其中保存顶点和您发现相关的数据。


谢谢!我在OpenGL FAQ中找到了一个类似的主题。它给出了相同的答案。 - Roun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接