newsgroups-index (beta)

Current group: schule.mathe

Rotation

Rotation  
Jan Boehme
 Re: Rotation  
Gastfried von Korinth
 Re: Rotation  
Jan Boehme
 Re: Rotation  
Jan Boehme
 Re: Rotation  
Peter Niessen
 Re: Rotation  
Jan Boehme
 Re: Rotation  
Peter Niessen
From:Jan Boehme
Subject:Rotation
Date:Wed, 17 Nov 2004 19:09:57 +0100
Hallo!
Ich möchte einen Punkt um eine beliebige Gerade drehen und habe dazu
folgendes Beispiel gerechnet:

geg: p [1,1,0]
r1[1,1,1]
r2[0,0,0]
gamma = 180

Es geht also um die Dreheung eines Echpunktes des EInheitswürfels um
eine Diagonale des Würfels.

Gerechnet habe ich nun folgendermaßen:

p* = ( [p-r1] * R(-theta)(-beta) * R(gamma) * R(beta)(theta) ) + r1

R(theta) = Ratationsmatrix um z
R(beta) = Ratationsmatrix um y
R(gamma) = Ratationsmatrix um x
R()() = Kombinationen

Theta habe ich zu -45°, Beta zu 35.2644° ermittelt.

Das Ergebnis meiner Rechnung ist [0.333333 0.333333 1.33333] und meiner
Meinung nach nicht korrekt.
Kann mir bitte jemand helfen, meinen Fehler zu finden?

Vielen Dank, Jan.
From:Gastfried von Korinth
Subject:Re: Rotation
Date:Thu, 18 Nov 2004 12:31:48 +0100
In article <301ifmF2rn5c2U1@uni-berlin.de>, aiscape@hotmail.com wrote...
> Hallo!
> Ich möchte einen Punkt um eine beliebige Gerade drehen und habe dazu
> folgendes Beispiel gerechnet:
>
> geg: p [1,1,0]
> r1[1,1,1]
> r2[0,0,0]
> gamma = 180
>
> Es geht also um die Dreheung eines Echpunktes des EInheitswürfels um
> eine Diagonale des Würfels.
>
> Gerechnet habe ich nun folgendermaßen:
>
> p* = ( [p-r1] * R(-theta)(-beta) * R(gamma) * R(beta)(theta) ) + r1
>
> R(theta) = Ratationsmatrix um z
> R(beta) = Ratationsmatrix um y
> R(gamma) = Ratationsmatrix um x
> R()() = Kombinationen
>
> Theta habe ich zu -45°, Beta zu 35.2644° ermittelt.
>
> Das Ergebnis meiner Rechnung ist [0.333333 0.333333 1.33333] und meiner
> Meinung nach nicht korrekt.

Meiner Meinung nach ist das Ergebnis korrekt. Ich ein Programm
geschrieben, nach dem ich Dein Posting las und das Programm ergibt das
gleiche.

--
jb
From:Jan Boehme
Subject:Re: Rotation
Date:Thu, 18 Nov 2004 20:56:41 +0100
Hallo!

Gastfried von Korinth schrieb:
> Meiner Meinung nach ist das Ergebnis korrekt. Ich ein Programm
> geschrieben, nach dem ich Dein Posting las und das Programm ergibt das
> gleiche.

Ja, das habe ich heute morgen auch gemerkt.
Das Problem das ich hatte war wohl eher: Welche Punkte des
Einheitskreises liegen bei dieser Rotation in einer Rotationsebene.
Nun sind aber alle Unklarheiten beseitigt.
Grüße, Jan.
From:Jan Boehme
Subject:Re: Rotation
Date:Fri, 19 Nov 2004 08:54:19 +0100
Jan Boehme wrote:
> Hallo!
>
> Gastfried von Korinth schrieb:
>
>> Meiner Meinung nach ist das Ergebnis korrekt. Ich ein Programm
>> geschrieben, nach dem ich Dein Posting las und das Programm ergibt das
>> gleiche.
>
>
> Ja, das habe ich heute morgen auch gemerkt.
> Das Problem das ich hatte war wohl eher: Welche Punkte des
> Einheitskreises liegen bei dieser Rotation in einer Rotationsebene.

Meinte natürlich Eckpunkte des Einheitswürfels.
From:Peter Niessen
Subject:Re: Rotation
Date:Wed, 17 Nov 2004 20:50:09 +0100
Am Wed, 17 Nov 2004 19:09:57 +0100 schrieb Jan Boehme:

> Hallo!
> Ich möchte einen Punkt um eine beliebige Gerade drehen und habe dazu
> folgendes Beispiel gerechnet:

Drehen um eine Gerade?????
Wie soll das gehen?
Ich könnte zwar raten was du meinst, aber praktischer ist du sagst es uns.

> geg: p [1,1,0]
> r1[1,1,1]
> r2[0,0,0]
> gamma = 180

Dito! Was soll das denn sein?
Zumindest als Determinate ist das schlicht Null => also nicht sinnvoll.
Was ist gamma?

> Es geht also um die Dreheung eines Echpunktes des EInheitswürfels um
> eine Diagonale des Würfels.
>
> Gerechnet habe ich nun folgendermaßen:
>
> p* = ( [p-r1] * R(-theta)(-beta) * R(gamma) * R(beta)(theta) ) + r1
>
> R(theta) = Ratationsmatrix um z
> R(beta) = Ratationsmatrix um y
> R(gamma) = Ratationsmatrix um x
> R()() = Kombinationen
>
> Theta habe ich zu -45°, Beta zu 35.2644° ermittelt.
>
> Das Ergebnis meiner Rechnung ist [0.333333 0.333333 1.33333] und meiner
> Meinung nach nicht korrekt.
> Kann mir bitte jemand helfen, meinen Fehler zu finden?

Der Fehler ist simpel:
Du hast nicht verstanden was du da machst!
Aber das ist ja nicht schlimm.
Gebe mal eine Antwort auf meine obigen Bemerkungen (damit ich weiss wo
anfangen) Nachrechnen mach ich eh nicht (das macht mein Computer)
Kurz gesagt:
Wenn du willst wird es Schritt für Schritt erklärt!
Nur vorrechnen ist nicht.

Mit freundlichen Grüßen
Peter Nießen
--
|
-[]=[]- Cunning Pike Wearing Glasses (ish)
From:Jan Boehme
Subject:Re: Rotation
Date:Wed, 17 Nov 2004 22:04:12 +0100
Hallo!

> Drehen um eine Gerade?????

Nunja, ich könnte auch Rotationsachse zu dem Gebilde sagen, dass durch
Ortsvektor r2 und Richtungsvektor r1 definiert wird.

> Wie soll das gehen?
> Ich könnte zwar raten was du meinst, aber praktischer ist du sagst es uns.
>
>
>>geg: p [1,1,0]
>> r1[1,1,1]
>> r2[0,0,0]
>> gamma = 180
>
>
> Dito! Was soll das denn sein?
> Zumindest als Determinate ist das schlicht Null => also nicht sinnvoll.

Das ist keine Matrix sondern der Punkt, der rotiert werden soll (p) und
die oben genannten Komponenten der Rotationsachse. Vielleicht versteht
man es so besser...

|1| |1| |0|
p = |1| r1 = |1| r2 = |0|
|0| |1| |0|

> Was ist gamma?

Gamma ist der Rotationswinkel. Mich interessiert das Abbild von p nach
der Rotation um die Rotationsachse.
Gamma sollte wie r1 und r2 frei wählbar sein. Ich habe hier Werte dafür
bestimmt, die mich interessieren. Da theta und beta != 0 sind, kann man
die Zwischenschritte anhand der Ergebnisse leicht verifizieren.

>>Das Ergebnis meiner Rechnung ist [0.333333 0.333333 1.33333] und meiner
>>Meinung nach nicht korrekt.
>>Kann mir bitte jemand helfen, meinen Fehler zu finden?
>
> Der Fehler ist simpel:
> Du hast nicht verstanden was du da machst!

Dann erkläre ich Dir mal, was ich zu verstehen glaube:
Ich habe einen Punkt, den ich um eine beliebige Achse drehen möchte. Ich
versuche den Punkt und die Achse erstmal so zu transformieren, dass die
Achse kolinear zu einer Achse des globalen Koordinatensystems (in meinem
Fall ist das die x-Achse) und r1 im Ursprung dessen liegt, denn da kann
ich die mir bekannten Rotationsmatrizen verwenden.
Nach Errechnen der beiden Winkel (Verdrehung der Rotationsachse um
globale z- und y-Achse) kann ich mit den beiden dazugehörigen
Rotationsmatrizen meine Rotationsachse transformieren.
Nun liegt sie (ihr temporäres Abbild) in der globalen x-Achse.
Jetzt führe ich meine eigentliche Rotation durch, indem ich meinen Punkt
mit Hilfe der Matrix für die Rotation um die x-Achse rotiere.

Bis hierhin klappt das übrigens und ich bekomme richtige Werte.

Nun aber der Weg zurück.
Ich negiere die Winkel und führe die Rotation um y und z-Achse erneut
durch (und achte hierbei auf die umgekehrte Reihenfolge, da ich die
Transformation invertieren möchte).
Zum Abschluss negiere ich ebenfalls die Verschiebeung, die dafür gesorgt
hat, dass r1 am Beginn der Rechnung im Ursprung liegt.

Nun sollte ich das korrekte Abbild des Punktes p "in den Händen halten".

> Aber das ist ja nicht schlimm.
> Gebe mal eine Antwort auf meine obigen Bemerkungen (damit ich weiss wo
> anfangen) Nachrechnen mach ich eh nicht (das macht mein Computer)
> Kurz gesagt:
> Wenn du willst wird es Schritt für Schritt erklärt!
> Nur vorrechnen ist nicht.

Ich habe meine Formel angegeben, so gut es mir in diesem Medium möglich war.
Ich habe nicht um ein Vorrechnen gebeten, noch bedürfte es dergleichen,
da mir eventuell ein grundsätzlicher Fehler unterlaufen sein könnte,
dessen Erwähnung mir reichen würde.

Danke für die Hilfe,
Jan.
From:Peter Niessen
Subject:Re: Rotation
Date:Wed, 17 Nov 2004 23:53:27 +0100
Am Wed, 17 Nov 2004 22:04:12 +0100 schrieb Jan Boehme:

> Hallo!
>
>> Drehen um eine Gerade?????
>
> Nunja, ich könnte auch Rotationsachse zu dem Gebilde sagen, dass durch
> Ortsvektor r2 und Richtungsvektor r1 definiert wird.

Ja Ok! Das macht erheblich mehr Sinn!
Aber Mathematik lebt nun mal von genauen Formulierungen.

>> Wie soll das gehen?
>> Ich könnte zwar raten was du meinst, aber praktischer ist du sagst es uns.
>>
>>
>>>geg: p [1,1,0]
>>> r1[1,1,1]
>>> r2[0,0,0]
>>> gamma = 180
>>
>>
>> Dito! Was soll das denn sein?
>> Zumindest als Determinate ist das schlicht Null => also nicht sinnvoll.
>
> Das ist keine Matrix sondern der Punkt, der rotiert werden soll (p) und
> die oben genannten Komponenten der Rotationsachse. Vielleicht versteht
> man es so besser...
>
> |1| |1| |0|
> p = |1| r1 = |1| r2 = |0|
> |0| |1| |0|

Auch das ist grottenfalsch! Ein Punkt ist keine Matrix! (zumindest nicht in
schule.mathe :-)

>> Was ist gamma?
>
> Gamma ist der Rotationswinkel. Mich interessiert das Abbild von p nach
> der Rotation um die Rotationsachse.

Ok! Gamma ist der Winkel. Aber um welchen Punkt der Gerade drehen wir denn
nun? Mir ist schon klar was du meinst, aber um das formulieren kommst du
nicht herum. Das musst du lernen, oder die nächste Aufgabe geht schief.

> Gamma sollte wie r1 und r2 frei wählbar sein. Ich habe hier Werte dafür
> bestimmt, die mich interessieren. Da theta und beta != 0 sind, kann man
> die Zwischenschritte anhand der Ergebnisse leicht verifizieren.
>
>>>Das Ergebnis meiner Rechnung ist [0.333333 0.333333 1.33333] und meiner
>>>Meinung nach nicht korrekt.
>>>Kann mir bitte jemand helfen, meinen Fehler zu finden?
>>
>> Der Fehler ist simpel:
>> Du hast nicht verstanden was du da machst!
>
> Dann erkläre ich Dir mal, was ich zu verstehen glaube:
> Ich habe einen Punkt, den ich um eine beliebige Achse drehen möchte. Ich
> versuche den Punkt und die Achse erstmal so zu transformieren, dass die
> Achse kolinear zu einer Achse des globalen Koordinatensystems (in meinem
> Fall ist das die x-Achse) und r1 im Ursprung dessen liegt, denn da kann
> ich die mir bekannten Rotationsmatrizen verwenden.

Öh ja! Soweit gut! Aber so richtig begriffen hast du den Trick nicht!

> Nach Errechnen der beiden Winkel (Verdrehung der Rotationsachse um
> globale z- und y-Achse) kann ich mit den beiden dazugehörigen
> Rotationsmatrizen meine Rotationsachse transformieren.

Das nenne ich Halbwissen! Aber sei nicht böse! Ich war zu Anfang auch nicht
besser dran :-))

> Nun liegt sie (ihr temporäres Abbild) in der globalen x-Achse.
> Jetzt führe ich meine eigentliche Rotation durch, indem ich meinen Punkt
> mit Hilfe der Matrix für die Rotation um die x-Achse rotiere.

[Rest Snip!]

> Ich habe meine Formel angegeben, so gut es mir in diesem Medium möglich war.
> Ich habe nicht um ein Vorrechnen gebeten, noch bedürfte es dergleichen,
> da mir eventuell ein grundsätzlicher Fehler unterlaufen sein könnte,
> dessen Erwähnung mir reichen würde.

Das mit den Formeln war schon OK!
Aber nun mal eine grundlegende Überlegung (in 2D der Einfachheit halber)
Was bedeutetet es einen Punkt zu drehen? Vektoren kannst du so halbwegs?
Wir müssen uns erstmal überlegen um welchen Punkt wir denn überhaupt drehen
möchten! Nicht um den Nullpunkt? Das wird ätzend! Geht aber. Viel besser
ist also unser Koordinatintensystem so zu ändern das es passt. Nach dem
drehen können wir ja zurücktransformieren und haben den gesuchten Punkt.
Ist ja nur eine schlappe Parallelverschiebung.
Wir stellen fest:
Das/die Pünktchen bewegen sich in einen Kreis um den Nullpunkt!
Somit ist erstmal nur schlappe Winkelrechnung angesagt um die neue Position
zu finden. Das gilt auch in 3D, 4D oder so, ist aber grässlich umständlich.
Man rechnet sich schlicht doof auf diese weise :-)
Aber wir der liebe Gott der Mathematik sagt:
Nimm Matrizen!
Gut .-)
für 2D sieht die so aus:

1 0
0 1

ziemlichlangweilig :-((
aber das selbe ist:

cos(phi) sin(phi)
sin(phi) -cos(phi)

(phi=0)!

Was Zahlen einsetzen! das gleiche ist!
Und nun der Trick:
wir multiplizieren ganz einfach unseren Punkt (x;y) mit der Matrix:

|cos(phi) sin(phi)|x
|sin(phi) -cos(phi)|y

für phi setzen wir einfach den gewünschten Winkel ein und fertig ist die
Laube!
In 3D ist das Spielchen genau dasselbe. Und Man kann die Matritzen
ineinander umrechnen! Auf diese Weise plus ein paar mehr Tricks geht die
ganze Koordinatenrechnerei ungeheuer simpel.
Aber lernen musst du das schon! Und das gründlich! Ansonsten sind
grässlichtste Rechenfehler kein Wunder.

Mit freundlichen Grüßen
Peter Nießen
--
~~~~~~~~~~~~~~~~~~~~~--- Cunning Pike Doing The High Dive
   

Copyright © 2006 newsgroups-index   -   All rights reserved   -   Impressum