Mathematik online lernen im Mathe-Forum. Nachhilfe online
Startseite » Forum » Rotation in der Ebene um den Mittelpunkt der Figur

Rotation in der Ebene um den Mittelpunkt der Figur

Sonstiges

Tags: Ebene, Rotation, Vektoren

 
Antworten Neue Frage stellen Im Forum suchen
Neue Frage
Rotor2

Rotor2 aktiv_icon

03:35 Uhr, 02.02.2008

Antworten

Hallo!

Mit der Auszeichnungssprache "SVG" (Scalable Vector Graphics) kann man Vektorgrafiken erstellen. Bspw. ergibt

circle cx="150" cy="150" r="100"

einen Kreis mit einem Radius von 100 Pixeln, dessen Mittelpunkt sich bei x = 150 und y = 150 findet. Mit einer "polyline" lassen sich beliebige Figuren aus geraden Linie konstruieren, bspw. ist

polyline points="63.5,100 236.5,100 150,250 63.5,100"

ein Dreieck.

Frage:

Wie berechne ich eine Drehung bspw. des Dreieckes um 30 Grad um den Punkt (150|150)? Siehe dazu die Bilder, falls ich mich unklar ausdrücken sollte.

Allgemeiner lautet die Frage: Wie lasse ich einen beliebigen Punkt um beliebige Grad um einen anderen Punkt rotieren?

Mein mathematischer Hintergrund ist in der Gegend von "nicht vorhanden" anzunehmen, ich bin weder Schüler, noch Student, auch nur Hobbyprogrammierer. Ich will eine Funktion schreiben, die eine Polylinie nach ihren Punkten zerlegt, jeden einzelnen Punkt um X Grad rotiert und dann die Figur aus diesen Punkten neu zusamen setzt. Evtl. wichtig: Die Rotation findet ausnahmslos immer um den Mittelpunkt der Figur statt.

Dankbar bin ich bereits reichlich für einen Link zu einer online-Erklärung des Problems, trotz einiger Suche hab ich nichts gefunden, das ich als Lösung identifizieren konnte, aber ich weiß ja auch nicht, wie das überhaupt "aussieht".


95ce67ab8f52475433781141a984563f
79e8f9376d1666fef6c87cb0eae50fcd
Hierzu passend bei OnlineMathe:

Online-Übungen (Übungsaufgaben) bei unterricht.de:
 
Online-Nachhilfe in Mathematik
Antwort
suziheizer32

suziheizer32 aktiv_icon

06:57 Uhr, 02.02.2008

Antworten

Hallo

Ich versuche es so einfach wie moeglich zu halten.

Wir legen den Mittelpunkt des Kreises in den Urspung eines Koordinatensystems.

 

Der Radius des Kreises ist r = 100 .

 

Ein Vektor der auf den Umfang des Kreises zeigt stellt sich folgendermassen dar.

("ohne weitere grosse Erlaueterungen")

 

v = r * ( cos α sin α )

 

wobei α der winkel zwischen Positiver x-Achse und Vektor ist.

 

Ich will ein Gleichseitiges Dreieck im Kreis darstellen die Winkel zwischen jedem Vektor muessen also 120 Grad sein ("der Winkel in dem sich die Seiten,-Winkelhlabierenden des Dreiecks im Ursprung schneiden")

 

Ich waehle den ersten Vektor auf der x-Achse also folgen..

 

α = 0 , β = 120 , γ = 240

fuer die Winkel der Vektoren die Auf die Punkte Dreiecks zeigen.

 

v 1 = 100 * ( cos 0 sin 0 )



v 2 = 100 * ( cos 120 sin 120 )



v 1 = 100 * ( cos 240 sin 240 )

 

das ganze gezeichnet siehe Abb.


Cb6d420351c95936b67ae93d9fdbc4ed
Antwort
suziheizer32

suziheizer32 aktiv_icon

07:04 Uhr, 02.02.2008

Antworten

Nun kann man die Ortsvektoren auch als Punke auffassen.

 

also

 

P 1 : ( 100 * cos 0 ; 100 * sin 0 ) .............usw.

 

Nun kann man allen Punkten eine Variable fuer den zusaetzlichen Winkel δ der Drehung hinzufuegen.

 

P 1 : ( 100 * cos ( 0 + δ ) ; 100 * sin ( 0 + δ ) )



P 2 : ( 100 * cos ( 120 + δ ) ; 100 * sin ( 120 + δ ) ) ........usw

 

Nun habe ich ein Polygon der Verbindungslinien der Punkte ueber den Parameter δ animiert.

 

siehe Abb. 

 

MFG basti

 

PS:leider dreht es sich nicht ,ich habe es als gif animation da falls du es mal anschauen willst einfach mailen.

 

 


786d6e6b2948e0a79d6643abf6ab8178
53e5ecf9ca72094e9a7c4c74bf15c76d
Rotor2

Rotor2 aktiv_icon

02:25 Uhr, 07.02.2008

Antworten
Hi nochmal, Basti, ich hab's nach Stellen der Frage gelöst, hab nochmal nach anderen Stichworten gesucht und eine Formel gefunden. Ich lasse die Problemstellung mal hier stehen, vielleicht haben ja spätere Generationen dasselbe Problem; ganz unten folgt dann die Lösung. Dir herzlichen Dank für Deine Bemühungen und die letztlich zum Erfolg führenden Stichworte! :)



----



Hi Basti,



erstmal danke für die Antwort, die ich zwar nicht auf mein Problem anwenden kann, die mir aber schon Ahnung von der Richtung, in die es geht, gibt. Ich glaube, das klappt so nicht, weil Du jetzt speziell von einem Dreieck ausgehst und dadurch an diese Winkelzahlen (0, 120, 240) kommst. Ich vereinfach mal die Problemstellung (hoffe ich):



Ich habe jetzt kein Dreieck mehr, sondern eine Gerade, definiert durch die beiden Punkte:



P1(500|300)

P2(500|700)



Der Mittelpunkt liegt demnach bei



M(500|500)



Die Linie will ich jetzt um beliebig viele Grad um den Mittelpunkt drehen. Wenn ich sie um 90° nach rechts drehe, dann lauten die Endpunktkoordinaten:



P1'(700|500)

P2'(300|500)



Ich suche also letztlich nach der Formel, in die ich einen beliebigen Punkt, einen beliebigen Mittelpunkt und eine beliebige Gradzahl einsetzen kann, und die mich von bspw.



P1(500|300)



bei



M(500|500)

90°-Drehung



nach



P1'(700|500)



bringt. Und für alle anderen Gradzahlen genauso anwendbar ist. Berechne ich mit dieser Formel dann die einzelnen Punkte eines beliebigen Polygons, wird es komplett um seinen Mittelpunkt gedreht.



Wenn Du mir da weiterhelfen könntest, wäre das echt super!



---



Und hier die Lösung, aufbereitet für eine Berechnung per Javascript:



W = [wert]; // -> Drehwinkel

M_x = [wert]; // -> x-Koordinate des Mittelpunkts

M_y = [wert]; // -> y-Koordinate des Mittelpunkts

x = [wert]; // -> x-Koordinate des zu drehenden Punktes

y = [wert]; // -> y-Koordinate des zu drehenden Punktes

a_x = M_x - x; // -> Abstand M_x zu x

a_y = M_y - y; // -> Abstand M_y zu y



Kos_W = Math.cos(W*Math.PI/180); // -> Berechnung des cos inkl. Umwandl. in Bogenmaß

Sin_W = Math.sin(W*Math.PI/180); // -> Berechnung des sin inkl. Umwandl. in Bogenmaß



x_neu = M_x - Kos_W * a_x + Sin_W * a_y; // -> Berechnung neue x-Koordinate

y_neu = M_y - Kos_W * a_y - Sin_W * a_x; // -> Berechnung neue y-Koordinate



Für [wert] muss jeweils der Wert (ach..) eingesetzt werden und es ist eine Umwandlung des Winkels in Bogenmaß notwendig.



WICHTIG für Nachahmer:

======================



Eigentlich lauten die Formeln für x_neu und y_neu jeweils "M_x/y +", da allerdings in SVG der Nullpunkt vom Bereich positiver x- und y-Werte aus gesehen oben links statt unten links liegt, muss entsprechend mit Minus gerechnet werden, d.h. in der normalen mathematischen Ebene lauten die Formeln:



x_neu = M_x + Kos_W * a_x + Sin_W * a_y; // -> Berechnung neue x-Koordinate

y_neu = M_y + Kos_W * a_y - Sin_W * a_x; // -> Berechnung neue y-Koordinate



Das Bild unten zeigt die Drehung einer Komplexen Figur um 13 Grad.


Be605c434424a8cf1e9138823c0b5188