コースワークの場合、太陽系の実用モデルを構築する必要があります。私は私の惑星(球体)を実装していますが、惑星の軸を上下の線で描かなければなりません。OpenGL図面 "軸"
GL_LINESを使用しても動作していないようですが、おそらくこのプロジェクトの規模(惑星の半径は139000000+)のためです。
簡体例:
void drawAxis(int n)
{
/* Draws the axis for body "n" */
glColor3f(1.0,0.0,0.0);
glBegin(GL_LINES);
glVertex3f(0, bodies[n].radius, 0);
glVertex3f(0, bodies[n].radius*2, 0);
glEnd();
glColor3f(0.0,1.0,0.0);
glBegin(GL_LINES);
glVertex3f(0, -bodies[n].radius, 0);
glVertex3f(0, -bodies[n].radius*2, 0);
glEnd();
}
void drawBody(int n)
{
if(n==0) {
/* Draws body "n" */
//glRotatef(bodies[n].axis_tilt, 1.0, 0.0, 0.0);
//Scale and position
glTranslatef(0.0, 0.0, 0.0);
glScalef(SCALE,SCALE,SCALE); //why already scaled?
//Axis
drawAxis(n);
//r g b - colour (red, green, blue)
glColor3f(bodies[n].r,bodies[n].g,bodies[n].b);
//radius - size of body (km)
glutSolidSphere (bodies[n].radius/SCALE, 50, 50);
}
}
は描画:
は、私がここで重要な何かが足りないのですか?
この球面上で軸を描くのに最適な "回避策"は何ですか?
「惑星の半径は139000000+です」なぜですか?なぜ惑星の半径は1.39ではないのですか? Scale is OpenGLはあなたが望むものです。メートル、センチメートル、フィート、マイル、キロメートルなどではありません。それはまさにあなたが望むものです。だからあなたのために物事を簡単にするようにスケールを選んでください。 –
シンプルではないと思ったので、私のデータファイルでKM –
こんにちはPezさんに連絡してください。あなたが自分のことを言ったように、ラインには実際には「幅」がありませんが、それは1つのカメラショットに数十万キロメートルに収まるようにしようとすると無限に小さなものをレンダリングしていることを意味します。無限に細い線が表示されないのは驚くことではありません; –