2010-12-26 18 views
0

キューブから6面の法線を計算する必要があります。 キューブはキーで動かされるので、キューブの位置は普通の顔を知る必要があります。OpenGl - キューブの法線を計算する

この計算に役立つ方法はありますか?

+0

キューブの面だけが必要な場合は、法線を手書きで書くことができます。たとえば、キュ​​ーブの西側= -1,0,0、東側= 1,0,0、北側= 0、-1、 0、南側= 0,1,0、上辺= 0,0、-1、下辺= 0,0,1、私は正しく覚えています。 – Newbie

+0

これは、辺が座標系と揃っている場合にのみ機能します。 – duffymo

+0

ああ、誰かがglRotatef()以外の何かで回転した立方体を作成すると思っていませんでした – Newbie

答えて

6

顔の関係を維持している場合は、顔を計算してから変換を使用して他の顔をすべて取得できます。あるいは、6つすべてを個別に計算することもできます。

最も簡単な方法は、2つのエッジベクトルのcross-productを使用して、結果を正規化して単位ベクトルを3Dで取得することです。

ポイント(1、2、3、4)の番号が付いた任意の立方体サーフェスを選択します。面に垂直な単位ベクトルを見下ろすと、反時計回りの方向に数字が表示されます。

、それを正規化する第二に点1から点へ4.

クロス最初のベクトルを実行するためのベクトル​​

同じで:

点1と2との間のベクトルを計算しますそれがあなたの単位ベクトルです。

+2

どのように動作するかを示す例がありますか? – Mac135

+0

クロス積?あなたはベクトルについて何を知っていますか? – duffymo

+0

私はvectoresとcross-productが何であるか知っていますが、実際にどのように作成されているのか分かりませんが、助けてくれてありがとうございます – Mac135