【问题标题】:JOGL glut torus translateJOGL 过剩圆环翻译
【发布时间】:2015-03-24 17:09:34
【问题描述】:

我想翻译窗口左侧的圆环,但我不知道是什么原因导致它没有做任何事情。这是一个代码:

public void display(GLAutoDrawable drawable) {
    GL2 gl2 = drawable.getGL().getGL2();
    gl2.glClear(GL2.GL_COLOR_BUFFER_BIT | GL2.GL_DEPTH_BUFFER_BIT);
    gl2.glMatrixMode(GL2.GL_PROJECTION);
    gl2.glLoadIdentity();
    gl2.glColor3f(1.0f, 0f, 0f);
    gl2.glPushMatrix();

     gl2.glTranslatef(-5.5f, -0f, -10f);
     gl2.glRotatef(30f, 1f, 1f, 1f);
     gl2.glMaterialfv(GL2.GL_FRONT_AND_BACK, GL2.GL_AMBIENT, FloatBuffer.wrap(QA_RED));
     gl2.glMaterialfv(GL2.GL_FRONT_AND_BACK, GL2.GL_DIFFUSE, FloatBuffer.wrap(QA_RED));
     gl2.glMaterialfv(GL2.GL_FRONT_AND_BACK, GL2.GL_SPECULAR, FloatBuffer.wrap(QA_WHITE));
     gl2.glMaterialfv(GL2.GL_FRONT_AND_BACK, GL2.GL_SHININESS, FloatBuffer.wrap(new float[]{30f}));
     gl2.glMaterialfv(GL2.GL_FRONT_AND_BACK, GL2.GL_AMBIENT, FloatBuffer.wrap(QA_RED));
     gl2.glMaterialfv(GL2.GL_FRONT_AND_BACK, GL2.GL_DIFFUSE, FloatBuffer.wrap(QA_RED));
     gl2.glMaterialfv(GL2.GL_FRONT_AND_BACK, GL2.GL_SPECULAR, FloatBuffer.wrap(QA_WHITE));
     gl2.glMaterialfv(GL2.GL_FRONT_AND_BACK, GL2.GL_SHININESS, FloatBuffer.wrap(new float[]{30f}));

    glut.glutSolidTorus(0.1f, 0.2f, 10, 20);

    gl2.glFlush();
}

如果我添加翻译方法环消失,否则我无法将其翻译到左侧。请任何建议我该如何解决?

【问题讨论】:

    标签: opengl glut jogl


    【解决方案1】:

    如果您尝试移动环面,我怀疑您想修改模型视图而不是投影矩阵。使用glOrtho 加载更大的正交投影矩阵,为边提供更大的值,以便您可以更好地看到您的圆环。然后确保切换到模型视图来操作它:

    gl2.glMatrixMode(GL2.GL_PROJECTION);
    gl2.glOrtho(100.0f, 100.0f, 100.0f, 100.0f, 0.1f, 100.0f);
    
    gl2.glMatrixMode(GL2.GL_MODELVIEW);
    gl2.glLoadIdentity();
    
    gl2.glTranslatef...etc
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-28
      • 1970-01-01
      • 2020-04-29
      • 2017-08-11
      • 1970-01-01
      • 2012-08-05
      • 2015-06-03
      • 2014-04-15
      相关资源
      最近更新 更多