gpt4 book ai didi

java - 无法获得要旋转的简单 OpenGL 三角形

转载 作者:行者123 更新时间:2023-11-30 08:07:59 30 4
gpt4 key购买 nike

我有一个方法 drawTriangle,它在 JAVA 中的 OpenGL 程序的 display() 方法中被引用。

public void drawTriangle(GL gl, int x1, int y1, int x2, int y2, int x3, int y3){

gl.glVertex2d(x1, y1);
gl.glVertex2d(x2, y2);
gl.glVertex2d(x3, y3);

}

然后我在 Display() 中调用三角形

public void display(GLAutoDrawable drawable){
GL gl = drawable.getGL();

gl.glClear(GL.GL_COLOR_BUFFER_BIT);
gl.glColor3f(0.4f, 1.0f, 0.4f);
gl.glBegin(GL.GL_TRIANGLES);
gl.glPushMatrix();
drawTriangle(gl,0,0,0,20,100,10);
gl.glTranslatef(0f, 0f, 0f);
gl.glRotatef(90f, 0f, 0f, 1f);
gl.glPopMatrix();
}

然后这会绘制一个可爱的红色三角形。

我无法更改三角形的位置或旋转。

它只是在这里生成它:

triangle

最佳答案

代码有一些问题。首先,gl.glBegin(...) 之后应该是 gl.glEnd()。将绘图函数(例如 drawTriangle(...))保留在这两个函数中,并将任何矩阵运算放在外面。

public void display(GLAutoDrawable drawable)
{
GL gl = drawable.getGL();
gl.glClear(GL.GL_COLOR_BUFFER_BIT);
gl.glColor3f(0.4f, 1.0f, 0.4f);
gl.glPushMatrix();
gl.glTranslatef(0f, 0f, 0f);
gl.glRotatef(90f, 0f, 0f, 1f);
gl.glBegin(GL.GL_TRIANGLES);
drawTriangle(gl,0,0,0,20,100,10);
gl.glEnd();
gl.glPopMatrix();
}

关于java - 无法获得要旋转的简单 OpenGL 三角形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33379201/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com