我即将在 C++ OpenGL、MFC 应用程序中制作一个旋转球体。所以我声明了一个具有旋转速度的变量demo.h
:
GLfloat angle;
void Init();
此外,我初始化了该变量并在 xyz(0,0,0) 处实现了一个正常球体 demo.cpp
:
Init();
angle += 1;
glRotatef(angle, 0, 1, 0);
GLUquadricObj* a = gluNewQuadric();
gluSphere(a, 10, 100, 100); //radius = 10
Init() 是用户定义的函数,用于初始化角度变量的值:
void Init() = {
angle = 1.0;
}
在这种情况下,球体旋转良好。但是如果我angle += 1;
改为angle += angle;
,那么 Sphere 不会以相同的速度旋转并最终消失 :( 我不知道这两者有什么区别。将“+=”运算符应用于 GLfloat 类型变量是否有问题?