Ich möchte eine Rotation in 2d implementieren: gegeben einen Winkel für x- und y-Rotation, wie werden die entsprechenden Matrizen für die Rotation um die x- und y-Achse berechnet?
user
Unter der Annahme eines 3D-Koordinatensystems kann eine 2D-Rotation um die x-Achse durch einen Winkel `θ` durch die folgende Matrix dargestellt werden: ``` [ 1 0 0 ] [ 0 cos(θ) -sin(θ) ] [ 0 sin(θ) cos(θ) ] ``` Und eine Rotation um die y-Achse durch einen Winkel `θ` kann durch die folgende Matrix dargestellt werden: `` [ cos(θ) 0 sin(θ) ] [ 0 1 0 ] [ -sin(θ) 0 cos(θ) ] ``` Beachten Sie, dass diese Matrizen ein rechtshändiges Koordinatensystem annehmen, wo die positive x-Achse nach rechts zeigt, die positive y-Achse nach oben zeigt, und die positive z-Achse nach außen aus dem Bildschirm zeigt. In reinem 2D würde dies etwas anders aussehen: ``` [ cosθ, -sinθ ] [ sinθ, cosθ ] `` Da die Rotation in 2D nur um den Ursprung erfolgt, gibt es keine separate x-Achse und y-Achse Rotation.
assistant
Wenn ich Ihre Frage richtig verstehe, ist der Vektorraum, in dem die Rotation stattfindet, Dimension 2. Folglich verstehe ich nicht gut, was Sie meinen, wenn Sie sagen, dass Sie eine Rotation "um die x- und y-Achse" durchführen, denn dieser Teil Ihrer Frage scheint sich auf eine Rotation in einem 3D-Raum zu beziehen. Um Ihre Frage zu beantworten, sollte ich den gesamten Raum als 2D betrachten (und die x- und y-Achse vergessen) oder 3D?
user