PDA

View Full Version : [Frage] Lösungsansatz Transformation


wrzsef
26-01-2003, 20:18
Ich habe mir Aufgabe 1 vom 3. Mai 2002 angesehen:
es soll eine Matrix für den 2dim Raum berechnet werden
und zwar soll ein Objekt entlang einer Geraden (gegeben sind 2 Punkte 2,1 und 5,3) geschert (Faktor 3) und dann gespiegelt werden...

ich gehe nach den Folien über das Kap. 5, bin mir aber mehr als unsicher, ob das so stimmt (!)

zunächst berechne ich mir alle Werte für die Geradengleichung:
m = deltay/deltax = 2/3 (die deltas errechne ich mir über die beiden gegebenen Punkte)
b bekommt man über die Umformung der Geradengleichung (y=mx+b): b = -1/3

dann wird ja noch ein Winkel benötigt um vor den eigentlichen Transformationen richtig zu rotieren:
dieser ist (lt. Folien) teta, den man über m = tan(teta) berechnen kann: also teta = arctan(m) = 33.69

jetzt sollte in folgender Reihenfolge transformiert werden (Achtung: das ist die logische Reihenfolge):

M1: T(0,-b) --> T(0,1/3)
M2: R(-teta) --> R(-33.69)
M3: Shx(3)
M4: Rfx
M5: R(teta) --> R(33.69)
M6: T(0,b) --> T(0,-1/3)

Fertige Matrix sollte dann so ausmultipliziert werden:
M = M6*M5*M4*M3*M2*M1

so weit, so gut....
aber:
1) müssen wir das wirklich ausmultiplizieren? und
2) wie funktioniert das Verifizieren mit dem Punkt? da muss ich ja alle durch multiplizieren? oder?

Kakarot
26-01-2003, 20:43
Also ich glaube schon das wir die Matrizen-gleichung ausmultipl. müssen.
zur 2.Frage kann ich leider nichts sagen, keine Ahnung

Jokeman
26-01-2003, 20:47
naja... ich denke, wir müssen zuerst die matrix ausmultiplizieren und dann auf den punkt anwenden... also den punkt mit unsrer matrix multiplizieren

magic7
27-01-2003, 00:05
@wrzsef:

Deine Reihenfolge stimmt, ebenso der Winkel und die einzelnen Schritte.
Mit der Transformation bin ich nicht einverstanden - die Gerade interessiert
uns zwischen den Punkten 2,1 und 5,3.
Also verschiebe ich 2,1 in den Ursprung -> T(-2,-1).

@all:

Ihr voting, bitte :)

Liebe Grüße
-Markus

wrzsef
27-01-2003, 00:27
Das hab ich mir auch überlegt... intuitiv würde ich deiner Verschiebung um -2,-1 zustimmen. Aber das passt dann ja nicht mit den Transformationen von den Folien überein, bei denen eben um 0,-b verschoben wird...

Jokeman
27-01-2003, 00:52
also ich denke, man muss zuerst in den ursprung verschieben... dann dreht man die gerade auf die x-achse...
dazu muss man sich meiner meinung nach nicht theta ausrechnen, sondern einfach nur den vektor, der sich durch die gerade ergibt (3,2) normalisieren (3/11 , 2/11)

wenn man sich jetzt formel 5-8 ansieht, kann man in diese direkt einsetzen... und zwar für:
cos(phi) = 3/11
und für
sin(phi) = 2/11

erklärung:
cos(phi) = ankathete/hypothenuse
wir haben den vektor normalisiert => hypothenuse=1
und die ankathete is der x-wert unsres vektors
das selbe für sin

als nächstes habe ich in x geschert, wies auf der angabe gezeigt ist und in y gespiegelt (unsre gerade liegt ja in der x-achse deshalb müssen wir die y-werte invertieren)

und dann wieder R^-1 und T^-1


ich denke, so stimmt es... was meint ihr dazu?

wrzsef
27-01-2003, 11:16
klingt logisch...
nur bin ich mir jetzt noch unsicherer als davor...
was die tatsächlichen Werte in der Rotation angehen, kommt etwas anderes raus, als bei meiner Lösung oben... aber für deine Lösung spricht, dass sie weitaus eleganter scheint und vernünftigere Werte rauskommen.

was anderes: die Spiegelung soll lt. Angabe "an der Geraden" durchgeführt werden:
ist das wirklich so zu deuten, dass, wenn man die Gerade an die x-Achse gelegt hat, eine Spiegelung um Y macht (sich also die X-Werte Ändern)?
ist nicht gemeint, dass man das Objekt um die Gerade (also um X) spiegeln soll:

OOOOOO
O
OOOOOO

-------------------------- X-Achse

OOOOOO
O
OOOOOO


wenn, dann müsste man doch um die X-Achse(wie oben) spiegeln, oder?

Jokeman
27-01-2003, 11:33
Du hast recht... es wird um x gespiegelt... Deine skizze zeigt es ganz deutlich....
aber das hab ich doch eh geschrieben... nur ein wenig anders ausgedrückt...
ich hab geschrieben, es wird IN y gespiegelt... also die y werte geändert

auf meinen lösungsansatz bin ich gekommen, wie ich mir das selbe problem im 3 dimensionalen auf S415 angescheut hab

wrzsef
27-01-2003, 11:41
OK ich habe die Lösung:
beide Lösungen stimmen - es kommt das gleiche raus!!!
bei meiner kann man mit den Absolutwerten rechnen und bei Jokemans rechnet man mit dem Einheitsvektor...
aber, wie gesagt, bei beiden Methoden kommt das Gleiche raus!

kleine Korrektur zu Jokeman:
Der Einheitsvektor ist nicht (3/11,2/11). Sondern ( 3/sqrt(13),2/sqrt(13) )

ich kenn mich aber trotzdem beim Verschieben noch nicht aus: da unsere Winkel bei beiden Meth. die selben sind, muss ja die Verschiebung auch die selbe sein, oder? einmal verschieben wir jedoch in den Ursprung (von 2,1) und einmal um (0,b)...????

bimbo
27-01-2003, 11:52
nochmal zu deiner winkelberechnung, wie kommst du itte auf 3/11 meiner meinung nach müsst es 3 / WURZEL(13) sein. 3²+2² = 13 ansonsten stimmts.

die verschiebung kann man entweder machen, indem man den schnittpunkt mit der x-Achse berechnet, und dann um diesen punkt verschiebt, oder um 2/1 oder 5/3 verschiebt. amn muss sihc nur für eine der methoden entscheiden.

Jokeman
27-01-2003, 11:53
oh... stimmt... weiß net, warum i mi mim einheitsvektor vertan hab...

ja Du musst natürlich den vektor in den ursprung schieben, sonst kannst Du ihn ja nicht richtig drehen... warum sollt man ihn nur in y verschieben?

bimbo
27-01-2003, 12:29
du willst ja eigentlich die gerade drehen dh, du berechnest den schinttpunkt mit der X-achse, und verscheibst dann nur mehr in x-richtung. ist aber wie gesagt egal, da man die verscheibung sowieso rückgängig macht. die hauptsache ist, dass die gerade nahc der versiebung durch den ursprung geht.

wolk
27-01-2003, 12:41
1. matrizen ausrechnen : 6 Stück und dann auch noch mit punkt multiplizieren -> geht sich nie in 20 min aus

2. gerade drehen : drehe um teta -> pos -> im uhrzeigersinn oder ?
d.h. dass wrzsef's lösung einen kleinen fehler aufweist : rotationsmatrix vorzeichen umdrehen -> zuerst pos dann neg

Kakarot
27-01-2003, 12:56
Wenn man im Uhrzeigersinn dreht muß man ja -teta rechnen oder?

Filz
27-01-2003, 14:38
Würde ich auch sagen.
Rotation mit positivem Winkel geht gegen den Uhrzeigersinn.

bimbo
27-01-2003, 14:53
zuerst -theta, dann theta. wenn man mit positivem winkel rotiert gehts gegen den uhrzeigersinn, mit negativem winkel im uhrzeigersinn

aleX
27-01-2003, 15:00
also bei mir is der winkel 41,8°

tan (winkel) = gegenkathete / ankathete = delta y / delta x = 2/3

dauraus folgt der winkel 41,8

??

alex

aleX
27-01-2003, 15:03
übrigens, ich würd auch zuerst cw und erst dann ccw rotieren

magic7
27-01-2003, 15:38
Der arctan von 2/3 ist aber 33,6...°

Liebe Grüße
-Markus