gpt4 book ai didi

java - glTranslate/rotate 在我的代码中不起作用

转载 作者:行者123 更新时间:2023-12-02 00:42:35 25 4
gpt4 key购买 nike

我想绘制一个立方体并翻译它,但模型 View 矩阵上的转换似乎不起作用。它们的效果为 0。

gl.glClearColor(0, 0, 0, 0);
gl.glClear(GL.GL_COLOR_BUFFER_BIT);
gl.glClear(gl.GL_DEPTH_BUFFER_BIT);
gl.glFrustum(-10, 10, -10, 10, 0.01, 20);



gl.glMatrixMode(GL.GL_MODELVIEW);
gl.glLoadIdentity();
gl.glTranslated(0.8, 0, 0); //no effect
gl.glRotated(30, 1, 0, 0); //no effect
drawCube(gl);

public void drawCube(GL gl) {

gl.glMatrixMode(GL.GL_MODELVIEW);

//spate
gl.glLoadIdentity();
drawSquare(gl);
//fata
gl.glLoadIdentity();
gl.glTranslated(0, 0, WIDTH);
drawSquare(gl);

//st
gl.glLoadIdentity();
gl.glRotated(-90, 0, 1, 0);
drawSquare(gl);

//dr
gl.glLoadIdentity();
gl.glRotated(-90, 0, 1, 0);
gl.glTranslated(0, 0, -WIDTH);
drawSquare(gl);

//sus
gl.glLoadIdentity();
gl.glRotated(90, 1, 0, 0);
drawSquare(gl);
//jos
gl.glLoadIdentity();
gl.glRotated(90, 1, 0, 0);
gl.glTranslated(0, 0, -WIDTH);
drawSquare(gl);

}

public void drawSquare(GL gl) {
gl.glPolygonMode(GL.GL_FRONT_AND_BACK, GL.GL_FILL);
gl.glBegin(GL.GL_POLYGON);
gl.glTexCoord2d(0, 0);
gl.glVertex3d(0, 0,0);

gl.glTexCoord2d(0, 1);
gl.glVertex3d(0, WIDTH,0);

gl.glTexCoord2d(1, 1);
gl.glVertex3d(WIDTH, WIDTH,0);

gl.glTexCoord2d(1, 0);
gl.glVertex3d(WIDTH, 0,0);
gl.glEnd();
}

最佳答案

drawCube()中,您正在重置模型 View 矩阵:

gl.glMatrixMode(GL.GL_MODELVIEW);

//spate
gl.glLoadIdentity();

我怀疑您想在这里使用 glPushMatrix()glPopMatrix()

附带说明:自 OpenGL 3.1 起,这些操作已被弃用。

关于java - glTranslate/rotate 在我的代码中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5908175/

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