OpenGL放置飞机

时间:2011-01-19 00:01:25

标签: android opengl-es translation rotation surfaceview

我正在尝试创建一个包含显示9个平面的GLView的SurfaceView。 我试图让飞机在原点周围以钻石形状定向。基本上,它将使顶层全部指向120度角的原点,以120度的圆形分开。中间层也将分开120度但垂直于x轴并平行于y。底层将是顶层的倒数。

到目前为止,我已经尝试了循环(没有很好地结束,飞机分散在创作中)并且逐个飞机去确保偏航和俯仰正确设置。两者都没有奏效。

如果您有任何想法,请告诉我或指出我正确的教程。

由于 〜Aedon

以下是我的逐行代码段:

dyaw& dpitch:120度

w& h:相应的宽度(2)和高度(3)

间距:.5f

// Top Layer
mGL.glRotatef(dyaw, 0, 1f, 0);
mGL.glRotatef(dpitch, 0, 0, 1f);
mGL.glTranslatef(0, h + spacing, 0);
mPanels[0].drawColorful(mGL);
mGL.glRotatef(dyaw, 0, 1f, 0);
mPanels[1].drawColorful(mGL);
mGL.glRotatef(dyaw, 0, 1f, 0);
mPanels[2].drawColorful(mGL);
// Middle Layer
mGL.glRotatef(dyaw, 0, 1f, 0);
mGL.glRotatef(-dpitch, 0, 0, 1f);
mGL.glTranslatef(0, -(h + spacing), 0);
mPanels[3].drawColorful(mGL);
mGL.glRotatef(dyaw, 0, 1f, 0);
mPanels[4].drawColorful(mGL);
mGL.glRotatef(dyaw, 0, 1f, 0);
mPanels[5].drawColorful(mGL);
// Bottom Layer
mGL.glRotatef(dyaw, 0, 1f, 0);
mGL.glRotatef(-dpitch, 0, 0, 1f);
mGL.glTranslatef(0, -(h + spacing), 0);
mPanels[6].drawColorful(mGL);
mGL.glRotatef(dyaw, 0, 1f, 0);
mPanels[7].drawColorful(mGL);
mGL.glRotatef(dyaw, 0, 1f, 0);
mPanels[8].drawColorful(mGL);

1 个答案:

答案 0 :(得分:0)

没关系,找到了更好的教程from INsanity。如果有人有任何关于Android的OpenGL问题,请参加这个教程,他们很棒。

〜Aedon