   polygon normal
  Hi All,I am stuck up in finding the normal of a polygon (3D) and use it to project the polygon into 2d so that I could use the resulting 2d polygon for various triangulation algorithms.I would appreciate if you could clarify the below steps that I do1) From various post in this site, I heard that by computing cross-product of any two adjacent vectors would make the polygon partial to that vertex normal. Hence, I go for computing the polygon normal using "Newell Normal computation" method::void  ComputeNewellNormal(float points[3],int nPoints,float normal[3]){ normal[0]=normal[1]=normal[2]=0.0f; for( int i=0 , j=1 ; j < nPoints ; i++ , j++ ){    normal[0]+= ( points[1] - points[j][1] ) * ( points[2] + points[j][2] ) ;   normal[1]+= ( points[2] - points[j][2] ) * ( points[0] + points[j][0] ) ;   normal[2]+= ( points[0] - points[j][0] ) * ( points[1] + points[j][1] ) ;  }}2) The normal computed from above step should be normalized; 3) Then I find the absolute values of coefficients of the normalized vector from step 2 and based on the longest absolute value, I ignore that coordinate from the 3d polygon vertices into 2d polygon.4) Use the resulting 2d polygon for various triangulation algorithms that I want to try out.i) Do the above mentioned method is correct ?ii) Why do I need to normalize the resulting vector?. I knew normalized vector has a length of 1 but theoretically what does it do; In the sense, If I go for Step 3 without doing Step 2, what does it signify?thanks for your inputs~ Matt
  What are you using the normal for exactly? If you want to project your polygon onto a 2D plane, multiply the vertices by a projection matrix.   