2011-12-13 5 views
0

私はOpenGLで作業しています。三次元空間の三角形の前にプレーンを描く必要があります。したがって、三角形の点の1つが変更された場合、面も変化しますOpenGLのパラレルプレーン

私は3点を持っていますが、クロス積を使って、法線ベクトルを得ることができるので、平面を描画するだけです。三角形点の1つを基準にした世界の起点、法線上の距離の平行移動、X、Y、Zの法線角度の回転、そして平面の描画。

どのようにノーマルを変換するか、また新しいプレーンを回転する方法を知る必要があります。そのため、頂点の変更、通常の変更、およびプレーンの変更もあります。

私が分かるように、angle = 0のglRotatef(angle、normal [x、y、z])の法線ベクトルを使用できます。しかし、三角形の頂点の1つを変更すると、平面は変化しません。

答えて

2

OpenGlはシーングラフではありません。あなたのためにオブジェクトを変換することは扱いません。すべてのOpenGLはレンダリングするためにあなたが言うことをレンダリングします。

(あなたが変更した)頂点をレンダリングするように指示し、プレーンを描画する方法を変更するように指示しない場合、もちろんプレーンは変更されません。

シーングラフを見て、行列とベクトル演算を行う方法。シンプルなシーングラフは比較的簡単に作成できます。

+0

これは、三角形の法線ベクトルを計算し、法線を平行移動し、法線を回転させて平面を描画する理由です。 – Herman

+0

あなたが言っていたことを私が誤解したのかもしれません。しかし、あなたがそれを表現する方法では、三角形の頂点を変更して、描画されたもの(シーングラフで可能なもの)を自動的に変更したいと思ったようです。飛行機を描くために使用しているコードを表示すると、おそらくもっとお手伝いできます。 – NickLH