1

上と下の円の点を計算し、それらの点を結合することにより、三角形を使用して円柱を作成しました。(1,1,0) から始めます。次に、下部の 1 つの点を計算し (y 軸のみを変更して (1,0,0))、次に上部の次の点を計算します (x = xcosA、z = zsinA、ここで A は任意の角度です)。すぐ。というわけで、上下の円を反時計回りになぞっています。ここで、これらの三角形に法線を描きたいと思います。

3 人 1 組でポイントを取ります。それらがベクトル a、b、および c に格納されているとします。ここで、a は最初の点 (上部)、b は 2 番目の点 (下部)、c は 3 番目の点 (上部) です。右手の法則によると、法線を計算するには、次のようにする必要があります: 法線 = (cb) x (ab)。これにより、法線が外側に向いているはずです。ただし、法線は内側に引き込まれています。法線を描画するには、三角形の中心に glTranslatef を適用し、(0,0,0) から法線まで線を引きます。私の計算は間違っていますか?

4

1 に答える 1

2

計算は正しいのですが、ポイントの順序が正しくありません。外積は逆可換であることを思い出してくださいa x b = - (b x a)

円柱の特定の例では、ポイントac左から右に定義しています(正面から見た場合)。現在の法線計算では、法線は内側にあるはずです。外側にしたい場合は、通常の計算の順序を逆にするだけです。考えられる解決策は次のとおりnormal = (a - b) x (c - b)です。

PS .: 三角形の法線の通常の定義 (書籍での) は(b - a) x (c - a)で、これは上記のものと同等です。

于 2013-10-15T04:54:43.667 に答える