Shoelace formula(en.wikipedia.org)
en.wikipedia.org
Shoelace formula
https://en.wikipedia.org/wiki/Shoelace_formula
12 comments
For those who, like me, need to visualize such a method- I found an explainer: https://www.youtube.com/watch?v=0KjG8Pg6LGk
I worked at a company, HouseCanary, writing software for doing home appraisals. We used this formula to calculate the square footage of a home based on a computer drawing. The funny thing is that for an appraisal, you have to show your calculations. We thought showing the points and a shoelace formula whitepaper would be enough. It wasn't. So, my boss wrote code that dumps the whole calculation onto a pdf so someone who works in lending can say "that looks right".
Do you no longer work there for publically divulgable reasons?
I got a job as a software engineer at another company. Came with a title bump and raise.
Glad to hear it. A friend who still works there as far as I know was singing their praises to me at a wedding a couple of years ago.
If you rewrite this method in terms of determinants, then it also has the bonus of generalizing correctly to arbitrarily many dimensions! And it also gives you a nice picture - imagine adding and subtracting simplices with one point at the origin (triangles in 2D, tetrahedra in 3D).
Came here to ask about 3D. Weird that the article doesn't mention the 3D or n-dimensional case.
Here is my answer to 3D from a long long time ago.
https://stackoverflow.com/questions/1838401/general-formula-...
Another interesting thing about the metrix in that answer. If you invert it, the rows become the coefficients for the plane equations of the faces. You also don't need to fully invert it - IIRC the adjoint is sufficient.
https://stackoverflow.com/questions/1838401/general-formula-...
Another interesting thing about the metrix in that answer. If you invert it, the rows become the coefficients for the plane equations of the faces. You also don't need to fully invert it - IIRC the adjoint is sufficient.
See Tom Duff's solution here: http://iq0.com/notes/normal.html
I use this in measuring field areas. Like the text reads, this is Green's Theorem.
The area of a triangle ABC can be determined by doing the cross product of any of the vectors that are the translation from a vertex to another (e.g. AB⨯AC = |AB|.|AC|.sin{^BAC}). More rigorously, this is the area of a lozenge, which then has to be divided by two.
Imagining a point X inside a convex polygon, it is easy to see a set of triangles with vertex X in common.
In fact, the polygon can not only be concave but point X can be outside the polygon, since the sine will compensate for negative and positive angles, subtracting any weird triangle out of the sum in the end.
Computationally, the point X should be as close as possible to every vertex, so that rounding errors are minimized.
The area of a triangle ABC can be determined by doing the cross product of any of the vectors that are the translation from a vertex to another (e.g. AB⨯AC = |AB|.|AC|.sin{^BAC}). More rigorously, this is the area of a lozenge, which then has to be divided by two.
Imagining a point X inside a convex polygon, it is easy to see a set of triangles with vertex X in common.
In fact, the polygon can not only be concave but point X can be outside the polygon, since the sine will compensate for negative and positive angles, subtracting any weird triangle out of the sum in the end.
Computationally, the point X should be as close as possible to every vertex, so that rounding errors are minimized.