0
我目前使用LWJGL创建一个简单的2D游戏。我想创建一些对象来让事情变得更简单。目前只需绘制一个Quad对象就可以正常工作,但后来我决定实现一种绘制Quad对象的方式。在OpenGL中旋转Quad无法正确显示(rotatef)
这是到目前为止的代码用于绘制旋转四:
@Override
public void draw(float angle) {
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
// translate the quad to the origin before rotation
glTranslatef(-(this.x + (this.w/2)), -(this.y + (this.h/2)), 0);
glRotatef(angle, (this.x + (this.w/2)), (this.y + (this.h/2)), 0);
// translate the quad back to its original position
glTranslatef((this.x + (this.w/2)), (this.y + (this.h/2)), 0);
glColor4f(this.color.getRed(), this.color.getAlpha(), this.color.getBlue(), this.color.getAlpha());
glBegin(GL_QUADS);
glVertex2f(this.x, this.y);
glVertex2f(this.x + this.w, this.y);
glVertex2f(this.x + this.w, this.y + this.h);
glVertex2f(this.x, this.y + this.h);
glEnd();
}
我这样做是为了画一个四 四Q =新的四(10,10,100,100); // new Quad(x,y,w,h) q.draw(Math.PI); //它是180度,但喜欢它
它不绘制Quad和这是如何绘制
我不知道这到底是怎么回事。
作为一个方面的问题
难道是一样的效果,如果我只是使用2D旋转矩阵来计算新的x和y,然后简单地计算出其它的X和Y的?
哦,我明白了,感谢那尼科。我现在觉得这很愚蠢 – PurityLake