Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Winkel berechnen


Ferrari - Mi 22.03.06 17:06
Titel: Winkel berechnen
Hi,


Die Koordinaten von 3 Punkten (P1,P2,P3) sind gegeben und ich möchte den Winkel P1P2P3 berechnen.
Kann mir da jemand helfen?


Kroko - Mi 22.03.06 17:09

verschiebe P1 bis P3 mit -P2, dann ist P2 der Nullpunkt

Delphi-Quelltext
1:
2:
3:
Alpha1 := AcrTan2 (P3.Y,P3.X);
Alpha2 := ArcTan2 (P1.Y,P1.X);
Alpha := Alpha1-Alpha2; // oder anders herum


starsurfer - Mi 22.03.06 17:09

wenns 2d Koordinaten sind dann guggst du ins Tafelwerk -Allgemeines Dreieck- bei Sinussatz und Kosinussatz ...

bei 3d Koordinaten dann guggst du unter Vektorrechnung und analytische Geometrie, machst aus den Punkten Vektoren und schaust bei Skalarprodukt von Vektoren rein...


Ferrari - Mi 22.03.06 17:12

Danke, ich werde es gleich ausprobieren.


Allesquarks - Mi 22.03.06 17:15

Kannst es ja auch über das Skalarprodukt machen.

(x1-x3)*(x2-x3)+(y1-y3)*(y2-y3)+(z1-z3)*(z2-z3)
Winkel=arccos(-----------------------------------------------------------------
SQRT((x1-x3)²+(y1-y3)²+(z1-z3)²)*SQRT((x2-x3)²+(y2-y3)²+(z2-z3)²)


Ferrari - Mi 22.03.06 17:25

Danke. Ich verstehe das zwar nicht, aber wird schon stimmen. Ich kanns ja mal so probieren.