Calculating the Surface Normal of a Triangle

406 Views Asked by At

If a point looks like this:

$$\textbf{point = [x, y, z]}$$

I have a triangle made up of these points:

$$p_a = [0.3333, 0, 0.05]$$ $$p_b = [0.4333, 0, 0.05]$$ $$p_c = [0.3317, 0.0327, 0.05]$$

I need to determine the surface normal for this triangle. I have no formal math training but from research online these are the steps I am following:

$$U = p_b - p_a$$ $$V = p_c - p_a$$

$$N_x = U_y \times V_z - U_z \times V_y $$ $$N_y = U_z \times V_x - U_x \times V_z $$ $$N_z = U_x \times V_y - U_y \times V_x $$ $$N = [0, 0, 0.00327]$$

Is this method correct? Looking at the results on a plot it doesn't seem correct to me and applying it to my real world use case it does not seem correct either.

My sources for my research are:

How to find surface normal of a triangle

https://www.opengl.org/wiki/Calculating_a_Surface_Normal

2

There are 2 best solutions below

2
On BEST ANSWER

Since you have gone into it extensively, I answer short:

$ U \times V $ a single cross product alone will do for the normal. Unit normal can be extracted by finding absolute value in the usual way if needed.

1
On

Your $N_x$ should be:

$$N_x = U_y \times V_z - U_z \times V_y $$