Archivübersicht

THEMA:   Punkt in Dreieck?

 1 Antwort(en).

Urbi begann die Diskussion am 20.03.01 (20:58) mit folgendem Beitrag:

Ich habe ein Problem. Gegeben ist das Dreieck A(x1,y1), B(x2,y2), C(x3,y3) und der Punkt P(x,y). Die Frage ist nun wie man herausfinden kann ob P im Dreieck enthalten ist.
Ich habe vom Kollegen erfahren dass P dann im Dreieck ist, wenn x=x1*a + x2*b + x3*c und y=y1*a + y2*b + y3*c gilt. Gleichzeitig ist 0<=a,b,c<=1 und a+b+c=1. Und wie weiter. wie finde ich da was heraus?


Harald Redlin antwortete am 29.04.01 (23:33):

Die Problemstellung ist zwar schon über einen Monat alt. Ich hoffe, daß meine Lösungsvorschläge trotzdem noch willkommen sind. Zuerst eine formale Lösung:
Unter Verwendung des genannten Kriteriums, ohne danach zu fragen, wie es motiviert werden kann, geht man rein algebraisch vor.
Für die drei unbekannten Größena, b und c sind drei Gleichungen bekannt:
x1 * a + x2 * b + x3 * c = x
y1 * a + y2 * b + y3 * c = y
1 * a + 1 * b + 1 * c = 1
Wenn die drei Punkte A, B und C ein echtes Dreieck bilden (d. h. ein Dreieck, das nicht zu einer Linie entartet ist), so sind diese drei Gleichungen linear unabhängig. Also kann eine eindeutige Lösung für a, b und c gefunden werden.
Diese Lösung ist nun leicht dahin zu prüfen, ob das Kriterium
(0 <= a <=1) und (0 <= ba <=1) und (0 <= c <=1) erfüllt ist.

Einen zweiten Lösungsweg bietet die analytische Geometrie. Das Prinzip besteht darin, zwei geschickte Transformationen des Koordinatensystems auszuführen:
1) Man verschiebt das Koordinatensystem so, daß ein Punkt des Dreiecks im Ursprung zu liegen kommt. Sei dieser Punkt ohne Beschränkung der Allgemeingültigkeit der Punkt A. Die anderen Punkte haben dann die neuen Koordinaten: B(x2-x1, y2-y1); C(x3-x1, y3-y1); P(x-x1, y-y1).

2) Wenn das Dreieck ein echtes Dreieck ist (s. o.), so sind die Vektoren OB und OC linear unabhängig voneinander. ("O" steht für den Ursprungspunkt). D. h. man kann sie in einer weiteren Transformation des Koordinatensystems als Basisvektoren wählen. Die Punkte haben dann die Koordinaten: B(1,0); C(0,1); P(p,q), wobei sich p und q aus der Lösung des folgenden Gleichungssystems ergeben:
(x2-x1) * p + (x3-x1) * q = x-x1
(y2-y1) * p + (y3-y1) * q = y-y1

3) An Hand einer Skizze des Dreiecks in dem zuletzt konstruierten Koordinatensystem sieht man, daß folgende Bedingung gilt dafür, daß der Punkt P(p,q) innerhalb des Dreiecks bzw. auf dessen Rand liegt:
0 <= p, q <= 1 und p+q <= 1























Impressum · Datenschutz