我正在研究太陽系,我試圖讓地球在太陽附近正確地旋轉。我可以讓它在軌道上旋轉,但是我不能讓它以正確的角度傾斜,如下圖所示: 地球傾斜openGL C++
我可以傾斜我的星球,但它像這當它走動(它不「面對」相同的方向)
任何想法,我可以做什麼?這裏是我的代碼:
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
//sun
glMaterialAmbientAndDiffuse(GLMaterialEnums::FRONT,GLColor<GLfloat,4>(1.5f,1.0f,0.0f));
glTranslate(0.0f, 0.0f, 0.0f);
glRotate(0.0, 0.0, 0.0, 00.0);
drawEllipsoid(10.0, 1.0, 4, 4);
//Earth
glRotate(orbit, 0.0, 0.0, 1.0);
glTranslate(30.0, 0.0, 0.0);
glPushMatrix();
glMaterialAmbientAndDiffuse(GLMaterialEnums::FRONT,GLColor<GLfloat,4>(0.5f,10.5f,10.5f));
glRotatef(110,0.0,23.0,110.0f);
glRotatef(orbit2, 0.0f, 0.0f,1.0f);
drawPlanetGrid(5, 1, 4, 4, 1);
glRotate(30.0, 0.0,0.0,0.0);
glTranslate(orbit2, 0.0, 0.0);
glPopMatrix();
orbit += .2;
if (orbit > 360)
{
orbit = 0;
}
orbit2 += 6.5;
if (orbit2 > 360)
{
orbit2 = 0;
}
抱歉,該代碼未被評論。我只是在試驗它。
我愛球:) –
謝謝...我是用完美的圓形球體,但如果他們被轉動我不知道或不是......所以我這樣做是爲了讓他們知道他們是不是 – TRod
你的基本問題是你不能通過組合轉換來實現這一點(假設原點是明星)。如果您使用旋轉變換來移動行星的質心,則還會使極點旋轉。如果您在定位行星後傾斜行星,用於傾斜的旋轉變換會將其移出黃道平面。 –