AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Winkel einer Linie durch 2 Punkte

Ein Thema von Florian H · begonnen am 14. Nov 2003 · letzter Beitrag vom 14. Nov 2003
Antwort Antwort
Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#1

Winkel einer Linie durch 2 Punkte

  Alt 14. Nov 2003, 15:14
Hallo,

ich habe eine (gedachte) Linie durch 2 Punkte im Delphi-Koordinaten-System.
Wie kann ich nun den Winkel dieser Linie feststellen?

Beispiel:
Code:
x A = (0|0)
 \
  \
   \
    \
     \
      x B = (5|5)
 
  ==> Winkel = 90°
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??

Bin leider erst 10.-Klässler und kenne daher von schulischem Wege noch keine Antwort


Viele Grüße
Florian
Florian Heft
  Mit Zitat antworten Zitat
Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#2

Re: Winkel einer Linie durch 2 Punkte

  Alt 14. Nov 2003, 15:20
<< falsch >>

edit2: forensuche hilft, hab was gefunden, muss es nur noch umbauen
Florian Heft
  Mit Zitat antworten Zitat
rebugger

Registriert seit: 29. Okt 2002
Ort: Auerbach
190 Beiträge
 
Delphi 7 Professional
 
#3

Re: Winkel einer Linie durch 2 Punkte

  Alt 14. Nov 2003, 15:27
Winkel Alpha = Tangens (y/x)

Also bei deinem Beispiel:
tan (5/5) = tan 1
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Winkel einer Linie durch 2 Punkte

  Alt 14. Nov 2003, 15:36
Zitat von Florian H:
.... forensuche hilft, hab was gefunden, muss es nur noch umbauen

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
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#5

Re: Winkel einer Linie durch 2 Punkte

  Alt 14. Nov 2003, 15:41
- Winkel in Grad (-180° < Winkel <= 180°)
- 0° bei 3 Uhr
- entgegen dem Uhrzeigersinn
- Winkel der Linie von X1/X1 aus

Delphi-Quellcode:
  * (X1/Y1)
   \
    \
     \
      * (X2/Y2)


Uses Math;

Winkel := -ArcTan2(X2 - X1, Y2 - Y1) / Pi * 180;
@Florian H,
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}
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Winkel einer Linie durch 2 Punkte

  Alt 14. Nov 2003, 15:50
Hallo:
ich habe eine kleine Erweiterung vorgenommen:
Delphi-Quellcode:
x A = (0|0)
 |\
 | \
 | \
 | \
 |. \
 |----- x B = (5|5)
  
  ==> Winkel = 90°
Der Punkt A hat die Koordinaten X1=0 und Y1=0
Der Punkt B hat die Koordinaten X1=5 und Y2=5
Der Tangens der Winkel berechnet sich:(Y2-Y1)/(X2-X1) Achtung: Wenn X1=X2 ist steht im Nenner 0. Das musst Du abfangen.
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz