View Full Version : [Frage] Transformationen (2)
Und gleich noch ein Beispiel:
15. März 2002
Unsere Lösung:
T(-4, -2, -4)
Rx(a) (a = "Alpha", b = "Beta")
(in der Matrix steht q für die Wurzel aus 5)
1 0 0 0
0 1/q -2/q 0
0 2/q 1/q 0
0 0 0 1
Ry(b)
q 0 -2 0
0 1 0 0
2 0 q 0
0 0 0 1
Und nun die Spiegelung:
RFz
1 0 0 0
0 1 0 0
0 0 -1 0
0 0 0 1
Dann wieder -Ry(b), -Rx(a), T(4,2,4)
(-R bedeutet R hoch minus 1)
Was habt Ihr für eine Lösung?
Liebe Grüße
-Markus
Zusatzfrage ist hier, wo eine gleichförmige Skalierung
um den Faktor 2 einzufügen ist - nach RFz ist es sicher
nicht falsch, doch eine gleichförmige Skalierung müßte
doch immer möglich sein, oder?
-Markus
so hab ichs auch verstanden... meine schwierigkeit war nur, die rotationsinwkle für das x- und y-alignment zu berechnen?
winkel zwischen x-achse und normalvektor? wie berechnet man einen winkel zwischen 2 vektoren eigentlich?
skalierung hatte ich auch an dieser stelle..
Zu Deinen Problemen: schau in die Folien, dort definiert
er zur Berechnung u, u', u''. Und schwups kommst zu
meinen Koeffizienten.
Die Frage ist - stimmt das?
Bezüglich Winkel kannst auch mein anderes posting beim
phong-shading anschauen.
Ciao
-Markus
danke, habs mir grad angeschaut.. das steht ehsoweit auch im buch!
jetzt hab ichs verstanden!
Ich versteh noch immer net, wie du auf die Matrizen Rx(a) und Ry(b) kommst, kannst du mir die Rechenschritte aufschreiebn, das wäre toll, danke, karen.
Ich dreh einfach den Normalvektor, somit hab ich auch die Ebene gedreht.
N = 2,2,1
daraus folgt:
u=a,b,c
u = 2,2,2
u'= 0,2,1
d=|u'|=wurzel(5)
u''=(2,0,wurzel(5))
Wie man das jetzt in Rx, Ry schlichtet, steht auf den Folien/im Buch.
Liebe Grüße
-Markus
Guinness
23-01-2003, 22:57
Wem die Erklärungen im Buch bzw auf den Folien etwas zu schwierig erscheinen, sollte sich diese Seite einmal anschaun:
http://olli.informatik.uni-oldenburg.de/Grafiti3/grafiti/flow2/page1.html
Ziemlich gut - und natürlich auf deutsch - erklärt und nebenbei sind zur Veranschaulichung zu jedem Thema Applets dabei, wo man die ganzen Transformationen per Mausklick vornehmen kann und auch gleichzeitig die Veränderungen in der Matrix sieht.
Ich hab's so leichter verstanden!
Ciao, Guinness!
@magic7
warum ist u = (2,2,2)?????
Hab noch gar keinen Durchblick.
Weils ein Tippfehler ist :(
Sorry, u = 2,2,1 !
Liebe Grüße
-Markus
Ist u nicht ganz was anderes - ich muss den Normalvektor doch normalisieren, bevor ich damit projeziere/winkel berechne?!
Das hab ich mir auch schon gedacht: man müsste doch bevor man aus N(2, 2, 1) u mach, N normalisieren:
also aus N(2, 2, 1) wird u(2/3, 2/3, 1/3) da ja magnitude = sqrt(2^2 + 2^2 + 1^2) = 3
zur Berechnung von d wird zwar irgendwie normalisiert, aber dann kann man doch nicht normalisierte Werte mit nicht-normalisierten mischen? oder bin ich da auf dem holzweg?
so hab ich auch schon gedacht...
und im buch stehtsauch so
vorher normalisieren, und dann mit a,b,c,d in die matrix einsetzen
ich glaub, bei den 2d transformationen gelesen zu haben, dass man kombinationen von transformationen immer in der reihenfolge, translation -> rotation -> skalierung durchführen sollte.
wollte nachschlagen, hab's aber nimma gefunden. also betrachtet dies ganz ohne gewähr!
lg, alex
hab da mal ne frage:
also u = V/|V|
und V = p2 - p1
?
ich weiß ned wie ich den betrag eines vektors bekomm bzw den vektor dann noch durch den betrag dividiere!
wenn's wer weiß kann sich wer kurz die mühe machen und mir des an dem bsp. vom 6.12.02 zeigen.
p1 (1,8,6) p2 (4,6,1)
was ich oben so gelesen habe, haben mehr dieses problem, also bitte schreibst wie des geht.
thanx, alex
vektor p1p2 = 3, -2, -5
betrag= wurzel (3² + -2² + -5²)
normalisierter vektor = 3/wurzel , -2/wurzel, -5/wurzel
Blöde Frage, aber dafür sicher leichte Erklärung!
wann mach ich Transform, Rotation, ... mit einem - als Vorzeichen, wann mit +???
was is jetzt eigentlich mit der normalisierung der koeffizienten geworden?
@dove: das - vor einer matrix bedeutet die inversion der + matrix
du verwndest die - matrix zum wiederherstellen der ursprünglichen position bzw. ausrichtung des objekts nach einer transformation.
wenn ich cg erklären versuche möchte ich am liebsten immer am satzende eine fragezeichen anhängen!
alex
@ alex:
danke! wenn ich also einen punkt in den ursprung verschiebe muss ich T(3,2,4) beispielsweise machen?! hab ich das richtig verstanden???
hat das jetzt schon jemand durchgerechnet mit dem normalisierten u?
und zur skalierung... ich bin der meinung, man muss sie ganz am anfang machen...
da keine koordinaten für unser eigentliches objekt angegeben sind, müssen wir annehmen, dass es sich im ursprung befindet, deshalb müssen wir es sofort skalieren...
ganz sicher nicht, nachdem wir den "spiegel" in den ursprung versetzt haben und sicher auch nicht nach der spiegelung, weil der objektmittelpunkt dann nicht mehr dort ist, wo er sich vor der spiegelung befunden hat...
was meint ihr?
Wegen der Skalierung bin ich mir auch noch nicht ganz sicher. Die betonen im Buch immer das Objekt muss sich im Ursprug befinden, damit sich der Abstand des Objekts vom Ursprung nicht ändert - aber im PO steht nicht, dass uns das überhaupt interessiert.
unser objekt befindet sich ja im ursprung, deshalb können wir immer skalieren oder ?
andere frage: wie rechnet man die matrix aus (Rotation, translat, sk,) wenn man für die erste translation nur x,y,z und keine werte dafür gegeben hat ?
naja... nicht ausrechnen, sondern die variablen hinschreiben, oder?
immer darf man sicher nichtt skalieren... wir nehmen ja das objekt im ursprung an... aber wenn wir es zum spiegeln irgendwie transformieren, is es ja nimma im ursprung... deshalb muss es meiner meinung nach ganz am anfang skaliert werden
Hab mir das grad angeschaut, mein Beispiel ist nicht richtig -
wie schon einige bemerkt haben, soll u normalisiert sein!
Liebe Grüße
-Markus
hab das beispiel jetzt mit der normalisierung gerechnet:
a=2/3
b=2/3
c=1/3
d=sqrt(5/9)
somit sehen die matrizen für die beiden rotationen folgendermassen aus:
Rx:
1 0 0 0
0 0,4472 -0,8944 0
0 0,8944 0,4472 0
0 0 0 1
Ry:
0,7454 0 -2/3 0
0 1 0 0
2/3 0 0,7454 0
0 0 0 1
alle anderen schritte bleiben die gleichen...
hat das jemand so oder so ähnlich?
Eine Anmerkung hätte ich noch, da ich anscheinend nicht wirklich begriffen habe um was es da geht..... die aufgabe ist, ein objekt um die ebene mit der normalen N, die gegeben ist, zu spiegeln. Aber nach dem beiden rotationen liegt mein (Normal-)vektor ja genau auf der z-Achse. Wenn ich jetzt um die z-Achse spiegle, hab ich dann (wenn ich alle Schritte wieder rückgängig mache) tatsächlich um diese Ebene gespiegelt? Denn wenn der Vektor, den wie da herumgedreht haben tatsächlich der Normalvektor ist, so befindet sich vor der Spiegelung die tatsächliche Ebene doch nicht entlang der y-Achse - über diese wird aber gespiegelt!!!
ich kenn micht nimma aus, naja, ist eh erst morgen - nein heute(!) Prüfung....
nö... es wird nicht um die z-achse gespiegelt...
es werden alle z-werte invertiert, was bedeutet, dass in der fläche gespiegelt wird... x und y werte bleiben gleich
wenn Du um die z-achse spiegeln wolltest, müsstest Du die x und y werte invertieren
vBulletin® v3.7.1, Copyright ©2000-2008, Jelsoft Enterprises Ltd.