Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Winkel addieren (https://www.delphipraxis.net/103947-winkel-addieren.html)

.chicken 24. Nov 2007 21:21


Winkel addieren
 
So, in letzter Zeit arbeite ich mal wieder n bisl mit Delphi und hab da mal wieder ne kleine Frage.

Ich möchte die Steigung berechnen, die sich ergibt wenn man Gerade1 an Gerade2 reflektieren lässt, wobei beide beliebige Steigungen haben können und nicht parallel zur X oder Y Achse verlaufen!

Die Steigung habe ich, daraus ermittele ich mittels ArcTan() den dazugehörigen Winkel, richtig?
So nun, weiss ich aber nicht genau wie ich weitermachen soll...hab hier schon n bissl rumskizziert und so aber irgendwie, kommt da nie was richtiges bei raus. Meine Idee:
Ich habe Winkel1 (ArcTan(M1)) und Winkel2 (ArcTan(M2)). Ich möchte Gerade2 an Gerade1 spiegeln.
Dazu rechne ich Winkel2 - Winkel1, um die erste Gerade quasi parallel zur X-Achse zu bringen, dann kann ich die Steigung der 2.Gerade zur ersten sehen. (Hoffe ihr versteht wie ich das meine)

So und danach müsste ich diese ermittelte Differenz doch eigentlich vom Winkel der ersten Gerade subtrahieren oder?
Bei mir haut das nicht hin!

Delphi-Quellcode:
W1 := ArcTan(M1);
W2 := ArcTan(M2);
W3 := W1 - (W1 - W2);
M3 := Tan(W3);
Es funktioniert einfach nicht, was mache ich falsch? Die Gerade die gezeichnet wird passt einfach nie.
Liegt der Fehler in meiner mathematischen Denkweise oder habe ich irgendwo nen Fehler im Code? (Hab ihn jetzt nich gepostet, aber wenn ihr sagt meine Überlegung ist richtig, dann bleibt ja eh nix anderes übrig ;-))


Hoffe ihr könnt mir helfen und versteht was ich meine, ist doch etwas kompliziert das zu erklaeren ^^

Grüße ;-)

Der_Unwissende 25. Nov 2007 11:02

Re: Winkel addieren
 
Hi,
also was genau Deine Winkel W1 und W2 sind weiß ich nicht. Du sprichst davon, dass Du eine Gerade an einer anderen Reflektieren möchtest. Leider verstehe ich noch nicht ganz, warum Du da weitere Bezugssysteme (wie eine X und eine Y Achse) mit rein bringst. Schöner wäre es, wenn Du das ganze (z.B. an einem Beispiel) illustriert hättest.
Soweit ich es verstehe möchtest Du die Erhaltung des Einfallwinkels für den Ausfallwinkel. Anders gesagt möchtest Du das nachbilden, was auch bei einer Billardkugel passiert, wenn diese über eine Bande gespielt wird. Der Weg den die Kugel zurücklegt wäre (z.B. als Vektor) Deine Gerade, die Bande ist die andere Gerade.
Da nur diese beiden miteinander interagieren ist ihre Lage im Raum völlig egal. Die Gerade G1 trifft auf G2. Jetzt kannst Du den Winkel zwischen G1 und G2 ermitteln, soweit so klar. Der Ausfall Winkel ist dann nichts anderes, als die Spiegelung an einer geraden, die Senkrecht zu G2 verläuft und durch den Punkt geht, an dem G1 G2 schneidet. Oder ganz einfach zu berechnen, der Ausfallwinkel muss 180° - dem Eintrittswinkel sein. Da brauchst Du keine weiteren Winkel zu berücksichtigen.

Kann natürlich auch sein, dass ich Dein Problem falsch verstehe. Insbesondere solltest Du auch, wenn Du etwas probierst, weiß wo Du hinmöchtest und ein anderes Ergebnis bekommst, nicht nur sagen dass das Ergebnis falsch ist. Wäre hilfreich wenn da auch steht was passiert und was Du gerne hättest.

Gruß Der Unwissende

.chicken 25. Nov 2007 12:10

Re: Winkel addieren
 
Kaum hab ich ne Frage, ist der Unwissende wieder zur stelle ;-) Danke schonmal!

Also ich habe versucht ein Beispiel zu malen, is etwas chaotisch aber ich glaub man weiss was ich möchte ;-)

http://www1.picfront.org/picture/3MS...elbeispiel.png

Ich weiss nich ob ich einfach ein Brett vorm Kopf habe oder so...kp ^^
Hoffe ihr könnt mir helfen, danke ;-)

wol 25. Nov 2007 12:22

Re: Winkel addieren
 
Zitat:

Zitat von .chicken
So, in letzter Zeit arbeite ich mal wieder n bisl mit Delphi und hab da mal wieder ne kleine Frage.

Ich möchte die Steigung berechnen, die sich ergibt wenn man Gerade1 an Gerade2 reflektieren lässt, wobei beide beliebige Steigungen haben können und nicht parallel zur X oder Y Achse verlaufen!

Die Steigung habe ich, daraus ermittele ich mittels ArcTan() den dazugehörigen Winkel, richtig?
So nun, weiss ich aber nicht genau wie ich weitermachen soll...hab hier schon n bissl rumskizziert und so aber irgendwie, kommt da nie was richtiges bei raus. Meine Idee:
Ich habe Winkel1 (ArcTan(M1)) und Winkel2 (ArcTan(M2)). Ich möchte Gerade2 an Gerade1 spiegeln.
Dazu rechne ich Winkel2 - Winkel1, um die erste Gerade quasi parallel zur X-Achse zu bringen, dann kann ich die Steigung der 2.Gerade zur ersten sehen. (Hoffe ihr versteht wie ich das meine)

So und danach müsste ich diese ermittelte Differenz doch eigentlich vom Winkel der ersten Gerade subtrahieren oder?
Bei mir haut das nicht hin!

Delphi-Quellcode:
W1 := ArcTan(M1);
W2 := ArcTan(M2);
W3 := W1 - (W1 - W2);
M3 := Tan(W3);
Es funktioniert einfach nicht, was mache ich falsch? Die Gerade die gezeichnet wird passt einfach nie.
Liegt der Fehler in meiner mathematischen Denkweise oder habe ich irgendwo nen Fehler im Code? (Hab ihn jetzt nich gepostet, aber wenn ihr sagt meine Überlegung ist richtig, dann bleibt ja eh nix anderes übrig ;-))


Hoffe ihr könnt mir helfen und versteht was ich meine, ist doch etwas kompliziert das zu erklaeren ^^

Grüße ;-)

Bemerkung zum Quellcode: W3 := W1 - (W1 - W2);
das ist das selbe wie:W3= W2
Nun zu deinem Problem:
Es ist wohl kein Programmierproblem sondern eher ein Geometrisches.
Ich würde zunächst den Schnittwinkel "SW" berechnen:
SW=arttan((m2-m1)/(1+m1*m2)
Dein Winkel ist dann SW+W2
Gruß Wolfgang

.chicken 25. Nov 2007 12:27

Re: Winkel addieren
 
Genau das brauchte ich wol, danke! Ja da schien ich wirklich ein totales Brett vorm Kopp gehabt zu haben als ich mir diese Rechnung ueberlegt habe xD Naja meine andern Ideen hatten auch irgendwie net funktioniert :P

Dankeschööön!

Edit: Darf ich noch fragen wo du die Rechnung her hast oder wie man sie erklären kann? Damit ich auch verstehe warum ich das so mache ;-)

wol 25. Nov 2007 13:26

Re: Winkel addieren
 
Zitat:

Zitat von .chicken
Genau das brauchte ich wol, danke! Ja da schien ich wirklich ein totales Brett vorm Kopp gehabt zu haben als ich mir diese Rechnung ueberlegt habe xD Naja meine andern Ideen hatten auch irgendwie net funktioniert :P

Dankeschööön!

Edit: Darf ich noch fragen wo du die Rechnung her hast oder wie man sie erklären kann? Damit ich auch verstehe warum ich das so mache ;-)

Elementargeometrie aus meiner Schulzeit.
Also: Schulbücher, vermutlich 10. Klasse?

.chicken 25. Nov 2007 13:49

Re: Winkel addieren
 
Na, bin iner 11 aufm Gymnasium und sowas hab ich noch nie durchgenommen ^^
Naja Sinus, Kosinus und Tangens erst einmal sehr kurz...kommt wohl alles noch ^^
Danke trotzdem ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:44 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