![](/img/trans.png)
[英]How do I have two classes in different lines interact with each other in Java?
[英]How do i rotate two lines independent of each other's axes in JOGL?
下面给出的是我使用JOGL创建的两行代码。 其中一条线沿x轴,而另一条线沿z。 当我执行以下代码时,沿x轴的线按预期绕z轴旋转,但是,沿z轴的线不仅绕x轴旋转,而且还意外绕着z轴旋转(自己的轴)。 我如何防止这种情况发生?
public void display(GLAutoDrawable drawable){
final GL2 gl = drawable.getGL().getGL2();
gl.glClear(GL2.GL_COLOR_BUFFER_BIT | GL2.GL_DEPTH_BUFFER_BIT);
gl.glLoadIdentity();
gl.glRotatef(rtri, 0.0f, 0.0f, 1.0f);//rotation about z axis
gl.glBegin (GL2.GL_LINES);
gl.glColor3f( 0.0f, 1.0f, 0.0f );
gl.glVertex3f(-0.50f, 0.0f, 0);//vertex 1 of line 1
gl.glVertex3f(0.50f, 0.0f, 0);//vertex 2 of line 1
gl.glEnd();
gl.glFlush();
gl.glRotatef(rtri, 1.0f, 0.0f, 0.0f);//rotation about x axis
gl.glBegin (GL2.GL_LINES);
gl.glColor3f( 0.0f, 1.0f, 0.0f );
gl.glVertex3f(0.0f, 0, 0.5f);//vertex 1 of line 2
gl.glVertex3f(0.0f, 0, -0.5f);//vertex 2 of line 2
gl.glEnd();
gl.glFlush();
rtri+=0.30f;
}
glRotate
更改当前活动的矩阵,然后将其与顶点向量相乘。 glLoadIdentity
重置此矩阵。 如果要让第二条线完全独立旋转,则只需在绘制第一条线后再次将其重置:
gl.glLoadIdentity(); // reset matrix
gl.glRotatef(rtri, 0.0f, 0.0f, 1.0f); // change matrix
// draw a line...
gl.glLoadIdentity(); // reset matrix, ... again
gl.glRotatef(rtri, 1.0f, 0.0f, 0.0f); // change matrix
// draw a line...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.