# How do you calculate the 2d area between list points?

I have a 2D surface in 3D (it's a cut) given in data points of the form (x,y,z):

data = ToExpression@Import["http://pastebin.com/raw/6ufm8bx3", "String"];


What is the easiest way to calculate area between the points?

ListPointPlot3D[data]


Assuming you want the area of the polygon made of the points.

At first we'll order the points:

orderedPoints=points[[FindShortestTour[points][]]];


Then lets look at what we have made with Polygon:

Show[ListPointPlot3D[points],Graphics3D[{Opacity[0.5],Polygon[orderedPoints]}]] Then we use the built-in Area function:

Area[Polygon[orderedPoints]]


0.000428182

this projects the points onto a plane and then computes the area of the 2d figure:

This is especially useful in case you already know the plane, but for this example we get the plane from a least squares fit.

mean = Mean[p];
cp = {x0, y0, z0};
{cp, n2} = {{x0, y0, z0}, {ny, nz }} /.
FindMinimum[
Total[Dot[ # - cp , {1, ny, nz } ]^2 & /@ p],
{{x0, mean[]}, {y0, mean[]}, {z0, mean[]}, ny, nz}][]
n = Normalize[Prepend[n2, 1]];
v1 = Normalize[p[] - cp - (p[] - cp).n n];
v2 = Cross[v1, n];
p2d = {v1.#, v2.#} & /@ ((# - cp) & /@ p);
Graphics[Point[p2d]] Abs@Total[Det /@ Partition[p2d[[FindShortestTour[p2d][]]], 2, 1, 1]]/2


0.000426947

see here for the area calculation: https://mathematica.stackexchange.com/a/22587/2079