私はサブウィンドウを使ってカーブからオブジェクトを回転させて生成しようとしています。私はすべての曲線を生成することができます。今私は2つの部分で窓を分割しました。左のサブウィンドウにカーブを描き、右の軸に沿って回転させてソリッドを生成したいと考えています。右のサブウィンドウには何も描画できません。OpenGLでサブウィンドウを使用する方法
編集:
これは私が左の部分に点を描画する方法です。ドットは、基本的にユーザーによるクリックです。これらのイベントをキャプチャしてリストを作成し、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でデバッグを使用し、図面funcが呼び出されていて呼び出されていて何も画面に表示されていないことを確認しました。
これは、第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();
}
ボタンを押したとき。上記の関数は呼び出されますが、何も起こりません。私の調整システムは間違っていますか?私は座標系を設定するために多くをしなかった。
一部のソースコードは役に立ちます –
こんにちは、私は私の投稿を編集し、いくつかのコードの断片を追加しました。助けてくれることを願っています。 – mindbender
"サブウィンドウ"を定義してください。 – Luca