假设我有一个点(250,125,-20).经过以下改造,
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(100.0, 50.0, 0.0);
glRotatef(-25.0, 0.0, 1.0, 0.0);
Run Code Online (Sandbox Code Playgroud)
如何获得该点当前坐标的值?我需要编写一个子程序来将矩阵乘以向量吗?有没有内置的解决方案?
您无法在转换后获取特定顶点(点)的坐标,但是对于此特定情况,您可以在应用平移/旋转后获取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
Run Code Online (Sandbox Code Playgroud)
在OpenGL中没有神奇的磁带,你必须编写自己的框架,例如:对于你世界上的每个对象,你需要保存顶点的类和你发现的相关数据.