1

我在原点有一架飞机。

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)

4

1 回答 1

0

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

于 2013-10-11T00:05:58.703 回答