c++ - 将 glRotate 和 glTranslate 与碰撞检测结合使用

标签 c++ c opengl collision-detection

假设我使用 glRotate 根据一些任意用户输入来转换当前 View (即,如果按下左键则 rtri+=2.5f)

glRotatef(rtri,0.0f,1.0f,0.0f);

然后我在旋转后的位置绘制三角形:

glBegin(GL_TRIANGLES);  // Drawing Using Triangles
    glVertex3f( 0.0f, 1.0f, 0.0f);  // Top
    glVertex3f(-1.0f,-1.0f, 0.0f);  // Bottom Left
    glVertex3f( 1.0f,-1.0f, 0.0f);  // Bottom Right
glEnd();  // Finished Drawing The Triangle

如何获得用于碰撞检测的转换顶点?还是我必须自己手动应用转换,从而使工作加倍?

我问的原因是我不介意实现显示列表。

最佳答案

您用于碰撞检测的对象通常不是您用于显示的对象。它们通常更简单、更快。
所以是的,这样做的方法是维护您手动使用的转换,但您不会因为对象不同而加倍工作。

关于c++ - 将 glRotate 和 glTranslate 与碰撞检测结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2513228/

相关文章:

c++ - 为什么这个内部(嵌套)结构需要默认构造函数?

c++ - 如何移动STL容器内的元素

c - 一个字符串的多个输入

c - OpenGL 着色器变量传递

c++ - 如何使用变换反馈限制几何着色器发出的顶点?

c++ - 在 OpenGL 中平移和移动相机的正确方法?

c++ - Visual Studio "The debug worker process exited unexpectedly"每次运行都在同一个断点上

c - 如何提高计算斐波那契计算的速度 - C

c - C语言读写大文件的有效方法

c++ - Eigen:给map赋值