Autor Beitrag
Passi077
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 125

Win XP
D7 Pers
BeitragVerfasst: Mo 10.04.06 15:40 
Hi,

ich habe eigentlich ein ganz einfaches Problem:

Ich habe 2 Punkte gegeben und möchte nun den Winkel errechnen der zwischen ihnen liegt:

user defined image

Gesucht: Alpha

Gemäß des Kosinussatzes muss ich also doch folgende Formel anwenden:

alpha = arctan(b/a)

-> Mein bisheriger Code sieht folgendermaßen aus:

ausblenden Delphi-Quelltext
1:
grad := radtodeg(arctan((x1-x2)/(y1-y2)));					


Leider kommt als Ergebnis kein brauchbarer Winkel heraus. Ich finde meine Fehler leider nicht.. habe schon den Mathe Streber in meiner Klasse gefragt, der meinte das die Formel so eigentlich stimmt..


Ich hoffe Ihr könnt mir helfen (Sollte ja eigentlich einfach sein :oops: )

Grüße
Passi
Marco D.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2750

Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
BeitragVerfasst: Mo 10.04.06 15:46 
Was hat denn Tangens da zu suchen, wenn du mit dem Kosinussatz rechnest/rechnen willst:
ausblenden Delphi-Quelltext
1:
grad := radtodeg(arctan((x1-x2)/(y1-y2)));					

_________________
Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mo 10.04.06 15:46 
Ich blicks nicht ganz - du sagst, du hast zwei Punkte gegeben, aber 2 Punkte definieren nicht 2 Geraden die sich in einem Winkel schneiden können - Zwei Punkte definieren lediglich EINE Gerade.
Ich würd mal auf nen Tippfehler tippen *lol wortspielalarm -.~* und du meintest "geraden"... in dem Fall... ...ist mir nicht klar, was x1 und x2 (y1,y2) sind.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
beljo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 129



BeitragVerfasst: Mo 10.04.06 15:51 
Ich nehme an das die Differenz zwischen x1 x2 bzw y1 y2 Deine beiden gesuchten Geraden sein sollen, richtig?
könnte es sein der Wert im Bogenmaß angegeben wird?
wenn ja dann musst Du ihn Umwandeln über Dreisatz.
Passi077 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 125

Win XP
D7 Pers
BeitragVerfasst: Mo 10.04.06 16:00 
Hi,

also auf dem hier angefügten Bild wären meine Punkte, die ich gegeben habe A und B. Davon jeweils ein X und Y Wert, X1+Y2 bzw. X2+Y2. Gesucht ist der Winkel Alpha.

Um nun die Längen der Strecken a und b zu errechnen, um diese Werte dann in den Tangens einsetzen zu können, brauche ich die Differenz der einzelnen Werte, korrekt.

Umwandlung in Gradmaß erledigt eigentlich radtodeg..

Also um es mal hoffentlich ganz verständlich auszudrücken ein Beispiel (sorry da scheine ich Probleme mit zu haben :D):

Ich habe einen festen Punkt. Um diesen kann ich mit der Maus einen Zeiger bewegen. Der Mauszeiger ist dabei immer an der Spitze des Zeigers und die Koordinaten des festen Punktes sowie die Koordinaten des Mauszeigers sind mir bekannt, sonst nichts. Und nun möchte ich wissen, um wie viel Grad dieser Zeiger geneigt ist.. also wie ne Tachonadel die einmal rund geht ;)

Danke + Grüße
Passi

Edit:
user defined image

m+x gegeben, alpha gesucht ;)


Zuletzt bearbeitet von Passi077 am Mo 10.04.06 16:05, insgesamt 1-mal bearbeitet
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mo 10.04.06 16:05 
Das is ne verhandlungsbasis! dann hast du nämlich noch einen dritten Punkt gegeben, ohne den du niemals 2 geraden bekommen könntest, nämlich den Bezugspunkt, von dem aus angefangen wird, in ° zu zählen. ich vermute, der ist auf 12 Uhr. Nur, tan alpha = gegenkathete durch ankathete => a/b nicht b/a. das könnte schonmal ein fehler sein.

Skizze angefügt.
Dein gesuchter winkel ist z.B. arcsin(CA / AB) im bogenmaß.
oder eben der Inverse Cosinus von (CB / AB), ebenfalls gibt delphi hier bogenmaß an.
und letztendlich der arctan (CA / CB).
Einloggen, um Attachments anzusehen!
_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Allesquarks
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 510

Win XP Prof
Delphi 7 E
BeitragVerfasst: Mo 10.04.06 16:58 
Zwei Punkte: wo ist der Winkel??? Gut wurde schon angesprochen.

Möchtest du den Nullpunkt als Bezugspunkt nehmen.

Deine Formel oben bezieht sich wohl eher auf die Kosinusdefinition bloß leider hast du den Kehrwert dessen genommen, was du nach der Tangensdefinition hättest nehmen können.

Du kennst den Kosinussatz offenbar gar nicht, obwohl er gemäß deiner Fragestellung eventuell "unumgänglich" wär. Denn über ihn kannst du den Winkel in nicht rechtwinkligen Dreiecken berechnen. Möchtest du das??? Denn deine schriftlichen erläuterungen implizieren das. Diesen wird allerdings durch deine Grafiken widersprochen.

Die Lösung eines Problems fängt damit an es zu begreifen (wie ist es gestellt was habe ich was soll ich machen) und erst dann es zu lösen. Ich würde vorschlagen du tust das und wenn du dann nicht weiterweißt dann kannst du hier weitermachen aber am besten du beschreibst dein Problem nochmal von vorne.

Hoffe ich konnte dir helfen :-)
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Di 11.04.06 00:00 
Ohne alles detailliert gelesen zu haben: Der Tan ist pi-periodisch, nicht 2pi periodisch. Statt ArcTan(dy/dx) sollte man deswegen besser ArcTan2(y,x) aus der Unit Math verwenden. Ausserdem misst man Winkel normalerweise von der x-Achse aus, nicht von der y-Achse aus (deswegen dy/dx).