0

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

1 回答 1

2

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

查看 1-10 之间的必要项,还有一些关于键盘控制和旋转等的内容。

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

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

于 2012-07-10T07:03:08.243 回答