使用平面法线旋转

时间:2013-10-10 18:46:09

标签: c++ opengl physics

我在原点有一架飞机。

glBegin(GL_POLYGON);
glVertex3f(-10.0, -10.0,0.0);
glVertex3f(10.0, -10.0, 0.0);
glVertex3f(10.0, 10.0,  0.0);
glVertex3f(-10.0, 10.0, 0.0);
glEnd();

比我试图将此平面旋转为新法线1 0 0。

我明白要计算两个法线之间的角度,我需要找到旧的法线。我怎样才能找到旧的常态?当我发现旧法线时,我必须输入新法线以进行旋转,例如glRotatef(angle,1,0,0)

1 个答案:

答案 0 :(得分:0)

所有顶点都位于XY平面内,因此法线仅在Z方向(0,0,1)或(0,0,-1)。如果你想旋转多边形以指向X方向的法线,你需要绕Y轴旋转90度,glRotatef(90.0f,0,1,0)或glRotatef(-90.0f,0,1, 0)。