Finding the Area of an Irregular Polygon in 3-D
Date: 02/04/2009 at 09:59:22 From: Manu Subject: Finding the area of an irregular polygon with 8 vertices I have 8 points (vertices) with (x,y,z) coordinates for each point. I don't have any internal angles. How do I find the area of this polygon? I tried doing the general form say point 1(x1,y1,z1) point 2(x2,y2,z2) ....point 8(x8,y8,z8) then the area will be 1/2(x1y2 - x2y1....x8y1 - y8x1) but that does not account for the z coordinates. How do I use the z coordinates?
Date: 02/04/2009 at 11:58:08 From: Doctor Tom Subject: Re: Finding the area of an irregular polygon with 8 vertices Hi Manu - The area is only going to make sense if the eight points are co-planar. If they're not, I'm not even sure what the term "area" would mean. Assuming they are coplanar, pick three of the points that do not lie in a straight line, say P1, P2 and P3. The vectors V1 = P1-P2 and V2 = P1-P3 are not parallel (since the points are not collinear), so their cross product V1 x V2 will be a vector perpendicular to the polygon. Next, find a spatial rotation that takes that cross product into the z-axis. Now all the z values will be the same, and you can use the usual formula for the area of a planar polygon using only the x and y coordinates. For more details on that, you might want to read this answer from our archives, which discusses planar polygons and then at the end mentions some ideas on three-dimensional ones: Finding the Area of an Irregular Polygon http://mathforum.org/library/drmath/view/73182.html Here's how I'd find the rotation matrix I mentioned: Normalize V1 x V2 to unit length by dividing each component by the length of V1 x V2. Call the result N = (nx, ny, nz). Normalize V1 so that it also has unit length (and I'll just continue to call it V1). V1 is perpendicular to N, so V1 x N = V3 will be perpendicular to both and will also have unit length. The set: N, V1, V3 is an orthonormal basis We need to find a 3x3 matrix M such that: N M = (0 0 1) V1 M = (0 1 0) V3 M = (1 0 0) These are trivial to solve and you'll have all 9 components of M and it will be a rotation matrix (or a rotation matrix with a reflection, depending on which three points you started with, but neither a reflection nor a rotation will affect the area). You may get a negative area using the standard formula, but it will be of the right magnitude and you just need to find the absolute value. I hope this helps. - Doctor Tom, The Math Forum http://mathforum.org/dr.math/
Date: 02/04/2009 at 20:11:14 From: Manu Subject: Thank you (Finding the area of an irregular polygon with 8 vertices) Thank you very much. The points are planar and non-collinear. I am confused about the vector part. Say I have coordinates p1(1,2,3), p2(4,5,6), and p3(7,8,9). Then v1 becomes (-3,-3,-3), v2=(-3,-3,-3). I guess v1xv2 length will be sqrt(1+2+9) + sqrt(16+25+36) = 11.27 then I do (p1x*p2x)/11.27... and find x,y,z and put it for N = (nx, ny, nz). I am not sure if I understood correctly. Can you please guide me or otherwise suggest a web link where I can get details about vectors?
Date: 02/04/2009 at 20:27:32 From: Doctor Tom Subject: Re: Thank you (Finding the area of an irregular polygon with 8 vertices) Hi Manu - Your example picked three vectors that lie in a straight line, so it can't work. Let's try another one: P1 = (0, 0, 0) P2 = (1, 1, 1) P3 = (1, 2, 3) V1 = (1, 1, 1) V2 = (1, 2, 3) The cross-product of: V1 = (x1, y1, z1) and V2 = (x2, y2, z2) is: V1 x V2 = (y1 z2 - z2 y1, z1 x2 - x2 z1, x1 y2 - y2 x1) or in the case of my example: (1, -2, 1). For your example, the cross product is (0, 0, 0). The length of the cross product is sqrt(1 + 4 + 1) = sqrt(6), so the normalized cross product is: (1/sqrt(6), -2/sqrt(6), 1/sqrt(6)) Now normalize, say, V1 to obtain: (1/sqrt(3), 1/sqrt(3), 1/sqrt(3)) Take the cross-product of those, as above, to obtain the third perpendicular vector. (This is better done with a calculator and with approximations of the square roots, obviously.) There's great information about vectors and working with them in Wikipedia or on the Wolfram Mathworld sites. - Doctor Tom, The Math Forum http://mathforum.org/dr.math/
Date: 03/13/2009 at 04:29:00 From: Manu Subject: Thank you (Finding the area of an irregular polygon with 8 vertices) Thank you for the response. I tried it but somehow I get stuck in the vector part. Since I have 8 points one of the points has to be repeated while taking 3 points each for finding the vector for cross product. Is there any other simpler method of finding the area?
Date: 03/14/2009 at 23:32:55 From: Doctor Tom Subject: Re: Thank you (Finding the area of an irregular polygon with 8 vertices) Another possibility, I suppose, would be to calculate a series of lengths of the sides and angles between them, building a similar polygon on the plane. In other words, start at a point on your spatial polygon, find the length of the first side, and mark off that distance along the x-axis. Then find the first angle and the second length, and go off by that length at that angle. Continue around the whole spatial polygon until it closes, and you'll have vertices on a plane which can be used to calculate the area. Also, if the points aren't perfectly planar, you'll find out because the planar polygon won't quite close. - Doctor Tom, The Math Forum http://mathforum.org/dr.math/
Search the Dr. Math Library:
Ask Dr. MathTM
© 1994- The Math Forum at NCTM. All rights reserved.