问题在opengl中旋转对象

时间:2013-12-02 12:02:30

标签: c++ opengl rotation

我无法弄清楚为什么我的绘图无法正常旋转。我已经看过很多其他想要完成同样事情的例子,但是我尝试过没有尝试过。

,由于某些原因它被转换到另一个位置,除非我在0,0开始中心然后它完美地工作。

void drawBolt(Point p, GLfloat rotation){
    glColor3f(1,0,0);
    glPushMatrix();
    glTranslatef(p.x, p.y,.0f);
    glRotatef(rotation,0,0,1);
    int pointArray[] = {
        p.x - 7, p.y + 10,
        p.x + 7, p.y + 10,
        p.x + 4, p.y + 2,
        p.x + 6, p.y + 2,
        p.x + 1, p.y - 5,
        p.x + 3, p.y - 5,
        p.x - 1, p.y - 12,
        p.x - 3, p.y - 5,
        p.x - 4, p.y - 5,
        p.x - 2, p.y + 2,
        p.x - 5, p.y + 2,
        p.x - 4, p.y + 13,
        p.x - 7, p.y + 14
    };
        glBegin(GL_TRIANGLE_FAN);
    for(int i  = 0; i < 22; i++){
        glVertex2i(pointArray[i] * 2, pointArray[i + 1] * 2);
        i++;
    }
    glEnd();
    glPopMatrix();
    glFlush();
    glColor3f(0,0,0);
}

void myDisplay()
{
    glClear(GL_COLOR_BUFFER_BIT);
    Point a(50, 50);
    drawBolt(a, 180.0f);

}

0 个答案:

没有答案