diff options
| author | Paul Jungeblut <paul.jungeblut@gmail.com> | 2016-01-13 19:50:20 +0100 |
|---|---|---|
| committer | Paul Jungeblut <paul.jungeblut@gmail.com> | 2016-01-13 19:50:20 +0100 |
| commit | 5b4656e55fcae93c05efb889bfc337d9590996ae (patch) | |
| tree | 452dd56c4ce3987841db198ad077d39113bfa50d | |
| parent | 887ea8a1862b5d448c87ab90c02579cb5cded5fa (diff) | |
Adding comment to the polygonArea function describing the sign of the result.
| -rw-r--r-- | geometry/formulars.cpp | 4 | ||||
| -rw-r--r-- | tcr.pdf | bin | 239278 -> 240171 bytes |
2 files changed, 2 insertions, 2 deletions
diff --git a/geometry/formulars.cpp b/geometry/formulars.cpp index 49b7f94..1ab57f4 100644 --- a/geometry/formulars.cpp +++ b/geometry/formulars.cpp @@ -106,9 +106,9 @@ bool isCoplanar(pt a, pt b, pt c, pt d) { // Berechnet den Flächeninhalt eines Polygons (nicht selbstschneidend). double areaOfPolygon(vector<pt> &polygon) { // Jeder Eckpunkt nur einmal im Vektor. double res = 0; int n = polygon.size(); - for (int i = 0; i < (int)polygon.size(); i++) + for (int i = 0; i < n; i++) res += real(polygon[i]) * imag(polygon[(i + 1) % n]) - real(polygon[(i + 1) % n]) * imag(polygon[i]); - return 0.5 * abs(res); + return 0.5 * res; // Positiv, wenn Punkte gegen den Uhrzeigersinn gegeben sind. Sonst negativ. } // Testet, ob sich zwei Rechtecke (p1, p2) und (p3, p4) schneiden (jeweils gegenüberliegende Ecken). Binary files differ |
