0

c++/OpenGL コーディングについて助けが必要です。私がやっているのは、ポリゴン近似アルゴリズムです。

私のコードは、最初に .txt ファイルからポイントのセットを取得し、それらをすべて配列に格納してから、その配列を表示します。次に、それらのポイントを取得してアルゴリズムを実行し、ポイントの新しい配列を作成します。どうすればよいかわかりませんが、最初のウィンドウと同じウィンドウに2番目のポイントセットを表示する方法です。新しい表示関数を作成して呼び出す必要がありますか? または、配列を受け入れるようになった基本的な表示関数を変更することはできますか? 私の表示機能のコードは次のとおりです。

void display(void){
    glClearColor(0,0,0,0);
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(1,1,1);

    glBegin(GL_POINTS);
    for(int i=0; i<2000; i++)
        glVertex2i(pixel[i].x,pixel[i].y);
    glEnd();

    glFlush();
}
4

1 に答える 1

1

処理された配列を描画するだけです。コードサンプルのように、結果のポイントをレンダリングしたいだけだと考えると、次を使用できます。

void display(void){
  glClearColor(0,0,0,0);
  glClear(GL_COLOR_BUFFER_BIT);
  glColor3f(1,1,1);

  glBegin(GL_POINTS);
  for(int i=0; i<2000; i++)
    glVertex2i(pixel[i].x,pixel[i].y);
  // here goes the rendering of the new set of points.
  glColor3f(1,0,0); // change the color so we can see better the new points.
  for(int i=0; i<2000; i++)
    glVertex2i(result[i].x,result[i].y);
  glEnd();

  glFlush();
}

変数resultは、処理の結果を含む配列です。

display関数は OpenGL によって呼び出され、配列を認識しないため、関数を変更することはできません。しかし、関数によって呼び出される多くの関数にコードを分割することに反対するものは何もありませんdisplay

それが役に立てば幸い。

于 2012-11-23T20:36:16.667 に答える