我有一个2D星,我不知道如何围绕它的中心旋转它,我也不知道如何使用键盘键。另外,如何让我的对象变大或变小一定百分比(因为当我尝试通过改变像素来实现它时,明星出错了。)
这是我的代码:
#include <GL/glut.h>
#include <GL/gl.h>
#include <GL/freeglut.h>
void init (void)
{
glClearColor(0.0,0.0,0.0,00);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0.0,200.0,0.0,200.0);
}
void LineSegment(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glBegin(GL_LINE_LOOP);
glVertex2i(20,120);
glVertex2i(180,120);
glVertex2i(45,20);
glVertex2i(100,190);
glVertex2i(155,20);
glEnd();
glFlush();
}
int main(int argc,char** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowPosition(50,100);
glutCreateWindow("STAR");
init();
glutDisplayFunc(LineSegment);
glutMainLoop();
return 0;
}
答案 0 :(得分:2)
如果使用glRotatef()函数围绕z轴旋转星形,它应围绕它的中心旋转。我创建了一个全局变量来测量旋转,并使用您想要使用的任何键来增加该值。 所以,glRotatef(角度,0.0f,0.0f,1.0f);应该做的伎俩。 查看NeHe教程,他们对此发现特别有用: http://nehe.gamedev.net/
检查1-10之间的必要值,键盘控制和旋转等等。
另外,对于缩放它,您也可以尝试使用glScalef(),并进行数学运算以将其增加为不会太难的百分比。
希望其中一些有用,我对这一切都很陌生&gt;。&gt;