![]() |
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:
Es funktioniert einfach nicht, was mache ich falsch? Die Gerade die gezeichnet wird passt einfach nie.
W1 := ArcTan(M1);
W2 := ArcTan(M2); W3 := W1 - (W1 - W2); M3 := Tan(W3); 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 ;-) |
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 |
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 ;-) ![]() Ich weiss nich ob ich einfach ein Brett vorm Kopf habe oder so...kp ^^ Hoffe ihr könnt mir helfen, danke ;-) |
Re: Winkel addieren
Zitat:
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 |
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 ;-) |
Re: Winkel addieren
Zitat:
Also: Schulbücher, vermutlich 10. Klasse? |
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