Rechteck < Sonstiges < Lineare Algebra < Hochschule < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 13:45 Mo 25.08.2014 | Autor: | Dante19 |
Aufgabe | ein Punkt im Raum soll den Mittelpunkt (Mx,My)eines Rechteckes darstellen.
Die Drehung (yaw) um diesen Punkt ist gegeben, sowie die Längenbastände(b,h) des Rechtexks. Die eckpunkte sollen ausgerechnet werden, diese müssen immer positiv sein, da die Punkte mx und my immer positiv sind. |
Ich bin wie folgt vorgegangen, jedoch ist mein Weg nicht richtig
A ----- B
Mx/My
C -----D
Ax = Mx - b/2
Ay = My + h/2
Bx = Mx + b/2
By = My + h/2
Cx = Mx - b/2
Cy = My - h/2
Dx = Mx + b/2
Dy = My - h/2
Axneu = ((Ax * cos(yaw))+(Ay * (-sin(yaw))) );
Ayneu = ((Ax * cos(yaw))+(Ay * (-sin(yaw))) );
Bxneu = ((Bx * cos(yaw))+(By * (-sin(yaw))) );
Byneu = ((Bx * cos(yaw))+(By * (-sin(yaw))) );
Cxneu = ((Cx * cos(yaw))+(Cy * (-sin(yaw))) );
Cyneu = ((Cx * cos(yaw))+(Cy * (-sin(yaw))) );
Dxneu = ((Dx * cos(yaw))+(Dy * (-sin(yaw))) );
Dyneu = ((Dx * cos(yaw))+(Dy * (-sin(yaw))) );
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 13:55 Mo 25.08.2014 | Autor: | fred97 |
> ein Punkt im Raum soll den Mittelpunkt (Mx,My)eines
> Rechteckes darstellen.
> Die Drehung (yaw) um diesen Punkt ist gegeben, sowie die
> Längenbastände(b,h) des Rechtexks. Die eckpunkte sollen
> ausgerechnet werden, diese müssen immer positiv sein, da
> die Punkte mx und my immer positiv sind.
> Ich bin wie folgt vorgegangen, jedoch ist mein Weg nicht
> richtig
>
> A ----- B
> Mx/My
> C -----D
>
> Ax = Mx - b/2
> Ay = My + h/2
>
> Bx = Mx + b/2
> By = My + h/2
>
> Cx = Mx - b/2
> Cy = My - h/2
>
> Dx = Mx + b/2
> Dy = My - h/2
So weit ist das O.K.
>
> Axneu = ((Ax * cos(yaw))+(Ay * (-sin(yaw))) );
> Ayneu = ((Ax * cos(yaw))+(Ay * (-sin(yaw))) );
Das beschreibt keine Drehung um den Punkt (Mx,My) !
Google mal "Drehmatrix"
FRED
>
> Bxneu = ((Bx * cos(yaw))+(By * (-sin(yaw))) );
> Byneu = ((Bx * cos(yaw))+(By * (-sin(yaw))) );
>
> Cxneu = ((Cx * cos(yaw))+(Cy * (-sin(yaw))) );
> Cyneu = ((Cx * cos(yaw))+(Cy * (-sin(yaw))) );
>
> Dxneu = ((Dx * cos(yaw))+(Dy * (-sin(yaw))) );
> Dyneu = ((Dx * cos(yaw))+(Dy * (-sin(yaw))) );
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 14:11 Mo 25.08.2014 | Autor: | Dante19 |
Die Drehmatrix im 2 dimensionalen Raum ist doch
R=( cos (alpha) -sin(alpha))
sin(alpha) cos(alpha))
wenn ich einen vektor um einen bestimmten winkel alpha drehe so rechne ich
:
R*V, wobei v = (vx,vy) ist
x = cos (alpha)*vx -sin(alpha)*vy
Y= sin(alpha)*vx cos(alpha)*vy
Ich muss noch erwähnen die Werte Mx und My sind veränderlich
|
|
|
|
|
Hallo!
> Die Drehmatrix im 2 dimensionalen Raum ist doch
>
> R=( cos (alpha) -sin(alpha))
> sin(alpha) cos(alpha))
>
> wenn ich einen vektor um einen bestimmten winkel alpha
> drehe so rechne ich
> :
>
> R*V, wobei v = (vx,vy) ist
>
> x = cos (alpha)*vx -sin(alpha)*vy
> Y= sin(alpha)*vx cos(alpha)*vy
>
So weit ist das auch korrekt, aber du schreibst
> Axneu = ((Ax * cos(yaw))+(Ay * (-sin(yaw))) );
> Ayneu = ((Ax * cos(yaw))+(Ay * (-sin(yaw))) );
und das ist nicht das gleiche!
> Ich muss noch erwähnen die Werte Mx und My sind
> veränderlich
Das ist generell noch ein Punkt. Und während ich vermute, daß obiges nur ein Schreibfehler hier im Forum ist, ist das mit dem Mittelpunkt wohl eher dein Problem:
Die Drehmatrix beschreibt eine Rotation um den Ursprung. Somit wird dein gesamtes Rechteck nach deiner Rechnung um den Ursprung gedreht.
Du solltest ERST die Vier Ecken auf [mm] $(\pm [/mm] b/2\ |\ [mm] \pm [/mm] h/2)$ setzen (Dann hast du ein Rechteck, dessen Mitte im Ursprung ist), dann drehen, und dann [mm] \vec{m} [/mm] hinzuaddieren.
|
|
|
|