在opengl中旋转一个星(2D)

时间:2012-07-09 21:46:17

标签: opengl rotation

我有一个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;
}

1 个答案:

答案 0 :(得分:2)

如果使用glRotatef()函数围绕z轴旋转星形,它应围绕它的中心旋转。我创建了一个全局变量来测量旋转,并使用您想要使用的任何键来增加该值。 所以,glRotatef(角度,0.0f,0.0f,1.0f);应该做的伎俩。 查看NeHe教程,他们对此发现特别有用: http://nehe.gamedev.net/

检查1-10之间的必要值,键盘控制和旋转等等。

另外,对于缩放它,您也可以尝试使用glScalef(),并进行数学运算以将其增加为不会太难的百分比。

希望其中一些有用,我对这一切都很陌生&gt;。&gt;