Hallo Claudius,
Beispiel:
A = (3,0)
B = (2,2)
C = (0,3)
Punkt mit größtem X-Wert: A
Punkt mit dem größten Y-Wert: C
Ergebnis: A, C, B
Richtig wäre aber: A, B, C
Meine spontane Idee wäre:
Baue aus A und B eine Geradengleichung der Form:
ax+c-y=0
Für Punkte "rechts" gilt dann ax+c-y>0 für die "links" ax+c-y<0
Das gibt also folgendes Programm:
f(x,y) = ((B.Y-A.Y)/(B.X-A.X))*(x-A.X)+B.X
if (f(C.X, C.Y) > 0) {
return [A, C, B];
} else if (f(C.X, C.Y) < 0) {
return [A, B, C];
} else {
return null; // kein Dreieck.
}
Grüße
Daniel