From 1cbe65cd82fa4d9adeda37f5a125ac617cc2f066 Mon Sep 17 00:00:00 2001 From: Paul Jungeblut Date: Tue, 13 Dec 2016 23:59:33 +0100 Subject: Small changes. --- geometry/formulars.cpp | 20 ++++++++++---------- graph/maxCarBiMatch.cpp | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/geometry/formulars.cpp b/geometry/formulars.cpp index c1010ff..3a5e53b 100644 --- a/geometry/formulars.cpp +++ b/geometry/formulars.cpp @@ -93,7 +93,7 @@ double distToLine(pt a, pt b, pt p) { // Liegt p auf der Geraden a-b? bool pointOnLine(pt a, pt b, pt p) { - return orientation(a, b, c) == 0; + return orientation(a, b, p) == 0; } // Liegt p auf der Strecke a-b? @@ -108,15 +108,15 @@ bool pointOnLineSegment(pt a, pt b, pt p) { // Entfernung von Punkt p zur Strecke a-b. double distToSegment(pt a, pt b, pt p) { if (a == b) return abs(p - a); - double segLength = abs(a - b); - double u = ((real(p) - real(a)) * (real(b) - real(a)) + - (imag(p) - imag(a)) * (imag(b) - imag(a))) / - (segLength * segLength); - pt projection(real(a) + u * (real(b) - real(a)), - imag(a) + u * (imag(b) - imag(a))); - double projectionDist = abs(p - projection); - if (!pointOnLineSegment(a, b, projection)) projectionDist = 1e30; - return min(projectionDist, min(abs(p - a), abs(p - b))); + double segLength = abs(a - b); + double u = ((real(p) - real(a)) * (real(b) - real(a)) + + (imag(p) - imag(a)) * (imag(b) - imag(a))) / + (segLength * segLength); + pt projection(real(a) + u * (real(b) - real(a)), + imag(a) + u * (imag(b) - imag(a))); + double projectionDist = abs(p - projection); + if (!pointOnLineSegment(a, b, projection)) projectionDist = 1e30; + return min(projectionDist, min(abs(p - a), abs(p - b))); } // Kürzeste Entfernung zwischen den Strecken a-b und c-d. diff --git a/graph/maxCarBiMatch.cpp b/graph/maxCarBiMatch.cpp index 761b536..5e2314f 100644 --- a/graph/maxCarBiMatch.cpp +++ b/graph/maxCarBiMatch.cpp @@ -1,5 +1,5 @@ // Laufzeit: O(n*min(ans^2, |E|)) -vector< vector > adjlist; // Von links nach rechts. +vector> adjlist; // Von links nach rechts. vector pairs; // Der gematchte Knoten oder -1. vector visited; -- cgit v1.2.3