假设我在 (250,125,-20) 有一个点。
经过以下改造,
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(100.0, 50.0, 0.0);
glRotatef(-25.0, 0.0, 1.0, 0.0);
如何获得该点的当前坐标值?
我需要编写一个子程序来将矩阵乘以向量吗?
是否有任何内置解决方案?
最佳答案
您无法在转换后获得特定顶点(点)的坐标,但是对于这种特殊情况,您可以在应用平移/旋转后获得 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:如何在转换后获取特定点的坐标?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5596054/