サブウィンドウを使用して、カーブからオブジェクトを回転させて生成しようとしています。すべての曲線を生成できます。ウィンドウを 2 つの部分に分割しました。左のサブウィンドウに曲線を描き、右の軸に沿って回転させてソリッドを生成したいと考えています。右側のサブウィンドウに何も描画できません。
編集:
これが、左側の部分にドットを描いている方法です。ドットは基本的にユーザーによるクリックです。これらのイベントをキャプチャしてリストを作成し、for ループを使用してそれらを出力します。
// This function takes a list of points and draws the dots in the screen
void drawDot(vector<vec2> listPts)
{
glBegin(GL_POINTS);
glColor3f(1.0,1.0,1.0);
if(j==0) // J=0 means points are being added using add option, no insert after is currently being used
{
for(int i=0;i<listPts.size();i++)
{
glVertex2i(listPts[i].x,listPts[i].y);
}
}
else if(j!=0)// this else part is for making selected points look red, as for this j!=0
{
for(int i=0;i<listPts.size();i++)
{
if(i==j ) // make only the selected point red
{
glColor3f(1.0,0.0,0.0);
glVertex2i(listPts[i].x,listPts[i].y);
}
else // rest all the points are same as before i.e. white
{
glColor3f(1.0,1.0,1.0);
glVertex2i(listPts[i].x,listPts[i].y);
}
}
}
glEnd();
glFlush();
}
ここで、一連のポイントがあるとします。右のサブウィンドウに同じポイントを描画して、機能しているかどうかを確認したいだけです。それで、ボタンを作成しました。ボタンを押すたびに、右のウィンドウに切り替えて何かを描きたいと思います。私はVS2010でデバッグを使用し、描画機能がまったく呼び出されていて、それが呼び出されていても画面に何も表示されないことを確認しました。
これは、2 番目のウィンドウで描画するために使用している関数です。
void drawDotWin2(vector<vec2> listPts)
{
glBegin(GL_POINTS);
glColor3f(1.0,1.0,1.0);
for(int i=0;i<listPts.size();i++)
{
glVertex2i(listPts[i].x,listPts[i].y);
}
glEnd();
glutWireTeapot (0.5);
glFlush();
}
ボタンを押すと。上記の関数が呼び出されますが、何も起こりません。座標系が間違っていますか? ただし、座標系を設定することはあまりしませんでした。