View Full Version : How to obtain normals?

03-14-2000, 04:01 AM
I've got a simple question (and let's hope the answer will also be simple).
Take 3 vertex that form a triangle.
What's the formula to obtain the normal of this plane? Thanks in advance and sorry for my bad english (i'm from Quebec)...

03-14-2000, 04:25 AM

You can calculate the normal by using cross products.

p1, p2 and p3 is your three points in space.
v1 is a vector from p1 to p2
v2 is a vector from p1 to p3

n is the normal calculated by using crosspruduct, v1 x v2.
v1.x = p2.x - p1.x
v1.y = p2.y - p1.y
v1.z = p2.z - p1.z

v2.x = p3.x - p1.x
v2.y = p3.y - p1.y
v2.z = p3.z - p1.z

n.x = (v1.y * v2.z) - (v2.y * v1.z)
n.y = (v1.z * v2.x) - (v2.z * v1.x)
n.z = (v1.x * v2.y) - (v2.x * v1.y)

You have to be carefull with how you cross the two vectors. If you cross them 'in the wrong order', your normal will be pointing the wrong way. You might have to swap v1 and v2. (v1 x v2) != (v2 x v1)


03-14-2000, 04:43 AM
Thanks! Exactly the kind of answer i was waiting for!