PDA

View Full Version : How to obtain normals?



Popol_Dallaire
03-14-2000, 05: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.
Vertex1=(1,1,1)
Vertex2=(2,2,2)
Vertex3=(3,3,3)
What's the formula to obtain the normal of this plane? Thanks in advance and sorry for my bad english (i'm from Quebec)...

Bob
03-14-2000, 05:25 AM
Hello

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)

Bob

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