+1 Daumen
605 Aufrufe
ich versuche jetzt schon seid geraumer Zeit das folgende Problem elegant zu lösen aber ich komme einfach auf keine schöne und schnelle Lösung.
Voraussetzung:Ich habe ein Rechteck mit Ursprung links oben in der Ecke. Die positive Y Achse geht nach unten und die positiven X Achse nach rechts.In dem Rechteck liegt eine belibiege Linie. Die Parameter der Linie sind die aus der Hesseschen normalen Form. Das heißt es wird vom Ursprung eine senkrechte Gerade zur Linie gezogen (Abstand der Linie zum Ursprung). Die Länge dieser Geraden ist der erste Parameter (Rho). Der Winkel dieser Abstands-Geraden zur X Achse ist der zweite Parameter (Theta).
Problem:Nun soll der Ursprung nicht mehr links oben in der Ecken sein, sonder auf der unteren Linie des Rechtecks in der Mitte. Die Parameter der Linie müssen daher neu berechnet werden.
Gegeben ist:Die Höhe und Breite des RechtecksRho und Theta vom ersten Ursprung aus.
Meine Lösung:Ich habe es zunächst so gelöst, indem ich einen dritten Ursprung in die untere linke Ecke gesetzt habe und zunächst für diesen die Parameter bestimmt habe. Danach habe ich dann die Parameter bezüglich des mittleren Ursprungs berechnet.Das Problem daran ist, dass man einerseits verschiedene if-Bedingungen in einer Programmierung benötigt und das ganze viel zu lange rechnet.Ich glaube das ganze geht auch mit viel weniger Aufwand aber ich komme leider auf keine gute Lösung.
Falls also jemand hier Lust und Zeit hat sich mein Problem anzuschauen und zu lösen bin ich sehr dankbar :)
Falls Fragen bezüglich des Problems bestehen dann einfach fragen
P.S. Es reicht auch schon ein guter Ansatz :D
Avatar von

Hi,

also der Winkle sollte in dem verschobenen Koordinatensystem der gleiche wie im ursprünglichen System sein, bzw. \(  \theta + \pi  \) weil es ja nur eine parallel Verschiebung ist. Stimmt das mit Deinen Ergebnissen überein?

Bzgl. Abstand überlege ich mir noch was.


ja genau das hab ich auch bezüglich des Winkels raus. Aber den Abstand find ich knifflig. Hab verschiedene Ansätze benutzt. Zum Beispiel die Linie in die Standard Form umrechnen (y = mx + n)  aber da bin ich dann auch in eine Sackgasse geraten.

1 Antwort

+2 Daumen
 
Beste Antwort

Hi,
ich gehe von folgender Geradengleichung aus
$$ ax + by = c  $$
Der normierte Normalenvektor lautet dann
$$ \vec n = \frac{1}{\sqrt{a^2+b^2}}\begin{pmatrix} a \\ b \end{pmatrix}  $$
Seien \( \begin{pmatrix} x_0 \\ y_0 \end{pmatrix} \) die Ursprungskoordinaten des neuen Koordinatensystems. Dann kann man folgende Gleichung (1) nach \( \lambda \) auflösen und erhält damit den Abstand des neuen Ursprungs von der Geraden
$$ (1) \quad \begin{pmatrix} x_0 \\ y_0 \end{pmatrix} + \lambda \vec n = \frac{c}{\sqrt{a^2+b^2}} \vec n   + \mu \begin{pmatrix} -\frac{c}{a} \\ \frac{c}{b} \end{pmatrix} $$
Die Lösung ist
$$ (2) \quad \lambda = \frac{c - (a x_0 + b y_0)}{\sqrt{a^2+b^2}} $$
Das wäre dann der Abstand der Geraden zum Ursprung des neuen Koordinatensystem. Bei mir zeigt allerdings die y- Achse nach oben und die x-Achse nach rechts.

Avatar von 39 k

Das Ergebnis kann man auch anders herleiten. Man bildet die Differenz des Abstandes der gegebenen Geraden vom Ursprung im nicht verschobenen Koordinatensystem und der Projektion des  Verschiebungsvektors auf den normierten Normalenvektor. Dann bekommt man genau das gleiche Ergebnis.

Bei meiner ersten Berechnung war noch ein Vorzeichenfehler drin, den habe ich in Formel (2) korrigiert.

Hi,

entschuldige für die späte Rückmeldung.

Ich hab mal ein paar Beispiele aufgezeichnet und durchgerechnet und es stimmt soweit :) vielen Dank

Ich muss noch verschiedene Szenarien testen und wenn alles stimmt melde ich mich nochmal.

Aber trotzdem schon mal einen riesen Dank :) Hilft mir wirklich um einiges weiter.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community