12

私はグラフィック プログラミングのクラスにいて、プログラミングではなく筆記の宿題をやっているので、これがこのサイトに適していることを願っています。私はこの問題を抱えています:

次の各頂点セットによって指定された三角形の単位法線を計算します (三角形が原点から離れていると仮定します)。

私は 1 年以上前に線形代数を取りましたが、先生はクロス積を教えないと言っていました。クラスのコンピューター サイエンスの担当者だけがそれを必要とし、必要なときにカバーされるからです (それは彼らが仮定したからではありませんでした)。線形代数の先生がやった)、そして私は2ダースの説明をチェックしましたが、それらはすべて私の頭を超えています.

この問題には 3 つの異なる問題が含まれているため、大量の変数やギリシャ文字を使用せずに 1 つの問題を解決する方法を教えていただければ、非常にありがたいです。

この問題のパート A には、三角形の点として次の 3 つの座標があります[1, 1, 1]; [1, -1, 1]; [1, 0, -1]。さまざまな式と説明をまとめてみましたが、法線ベクトルは [4, 0, 0] であることがわかりましたが、この三角形が yz 平面上にないことを十分に知っているため、正しくないようです。私が持っている他の唯一のものは式です:

(A x B) / | A x B |

A と B は、ベクトルとして表される三角形の 2 つのランダムな側面であり、A の場合は V2 と V1、B の場合は V3 と V1 を減算することによって計算されることは知っていますが、正確に何をするように指示されているのかわかりません。

4

1 に答える 1

21

https://www.khronos.org/opengl/wiki/Calculating_a_Surface_Normalからの引用

三角形のサーフェス法線は、その三角形の 2 つのエッジのベクトル クロス積をとることによって計算できます。計算に使用される頂点の順序は、法線の方向に影響を与えます (ワインディングに関してフェースの内側または外側)。

したがって、三角形p1, p2, p3の場合、ベクトルA = p2 - p1とベクトルのB = p3 - p1場合、法線N = A x Bとは次のように計算できます。

Nx = Ay * Bz - Az * By
Ny = Az * Bx - Ax * Bz
Nz = Ax * By - Ay * Bx
于 2014-05-17T08:46:01.630 に答える