![]() |
Winkel einer Linie durch 2 Punkte
Hallo,
ich habe eine (gedachte) Linie durch 2 Punkte im Delphi-Koordinaten-System. Wie kann ich nun den Winkel dieser Linie feststellen? Beispiel:
Code:
Die beiden Punkte A und B habe ich, können beliebig verteilt sein...wie kann ich jetzt den Winkel einer Geraden durch diese Punkte berechnen??
x A = (0|0)
\ \ \ \ \ x B = (5|5) ==> Winkel = 90° Bin leider erst 10.-Klässler und kenne daher von schulischem Wege noch keine Antwort :| Viele Grüße Florian |
Re: Winkel einer Linie durch 2 Punkte
<< falsch >>
edit2: forensuche hilft, hab was gefunden, muss es nur noch umbauen :) |
Re: Winkel einer Linie durch 2 Punkte
Winkel Alpha = Tangens (y/x)
Also bei deinem Beispiel: tan (5/5) = tan 1 |
Re: Winkel einer Linie durch 2 Punkte
Zitat:
Ich finde es gut das Du doch noch auf die Suche-Funktion gestossen bist (geschieht leider zu selten in der letzte Zeit) und diese dir geholfen hat. Eine Bitte habe ich noch: Markiere deine Frage bitte als "beantwortet" (Oben rechts im Thread). Danke :-D |
Re: Winkel einer Linie durch 2 Punkte
- Winkel in Grad (-180° < Winkel <= 180°)
- 0° bei 3 Uhr - entgegen dem Uhrzeigersinn - Winkel der Linie von X1/X1 aus
Delphi-Quellcode:
@Florian H,
* (X1/Y1)
\ \ \ * (X2/Y2) Uses Math; Winkel := -ArcTan2(X2 - X1, Y2 - Y1) / Pi * 180; das sieht mir mehr nach einem 45er aus Ich hoffe, ich hab nicht zu viel gelöscht.
Delphi-Quellcode:
Spielfeld.Winkel: Integer; {Winkel in Grad = Spielfeld.Winkel / 10}
Spielfeld.Winkel := Round(Round(ArcTan2(Y - Ceil(ClientWidth * 0.678), X - Trunc(ClientWidth * 0.8)) / Pi * 1800 + 900) mod 3600 / 150) * 150; {in 15°-Schritten} Spielfeld.Winkel := Round(Round(ArcTan2(Y - Ceil(ClientWidth * 0.678), X - Trunc(ClientWidth * 0.8)) / Pi * 1800 + 900) mod 3600 / 50) * 50; {in 5°-Schritten} Spielfeld.Winkel := Round(ArcTan2(Y - Ceil(ClientWidth * 0.678), X - Trunc(ClientWidth * 0.8)) / Pi * 1800 + 900) mod 3600; {in 0,1°-Schritten} |
Re: Winkel einer Linie durch 2 Punkte
Hallo:
ich habe eine kleine Erweiterung vorgenommen:
Delphi-Quellcode:
Der Punkt A hat die Koordinaten X1=0 und Y1=0
x A = (0|0)
|\ | \ | \ | \ |. \ |----- x B = (5|5) ==> Winkel = 90° Der Punkt B hat die Koordinaten X1=5 und Y2=5 Der Tangens der Winkel berechnet sich:
Delphi-Quellcode:
Achtung: Wenn X1=X2 ist steht im Nenner 0. Das musst Du abfangen.
(Y2-Y1)/(X2-X1)
Mit arctan((Y2-Y1)/(X2-X1) erhälst Du den Winkel in Radiant. Wenn Grad verwenden möchtest muss Du das Ergebnis wie folgt umrechnen:
Delphi-Quellcode:
Wr : Winkel in Radiant
Wg : Winkel in Grad Formel: Wg:=Wr*180/Pi Weil es gilt: Pi entspricht 180° und Wr entspricht Wg Daraus folgt: Pi/Wr=180/Wg Fix umgestellt ergibt Wg=Wr*180/Pi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz