PDA

View Full Version : [Frage] apropos musterlösung


jessi
22-11-2002, 15:57
ist auch jemandem aufgefallen, dass die rotation nicht richtig ist ?? wenn ich zum beispiel um die x-achse rotieren will, dann stimmt die implementierung in der musterlösung nur dann, solange die x-achse des objekts parallel zur x-achse des koordinatensystems liegt. sobald dies nicht mehr der fall ist, dreht sich das objekt nicht mehr um seine eigene x-achse.

hat jemand die rotation so implementiert, wie sie im buch unter 'general rotation' (oder so änhnlich) beschrieben war ? ich habe das nämlich versucht, hat aber nicht ganz hingehaut und ich wüßte gerne warum.
im endeffekt hab ich die version dann als kommentar stehen gelassen und das programm mit der rotations-version abgegeben, wie sie jetzt auch in der musterlösung zu finden ist ;)

lg, j

gck
22-11-2002, 16:47
das Problem kann ich nicht reproduzieren: die Implentierung der Rotation in der Musterlösung ist die Verschiebung des Objekts in den Ursprung, drehen um den Winkel, zurückschieben, wos war -> es rotiert schon um seine Objektkoordinatenachsen...

Das Problem ist nur, dass die Objektkoordinaten nicht immer den Ursprung in der Mitte haben... Wenn dich das "stört", kannst du aber jederzeit einen "besseren" Koordinatenursprung ausrechnen und stattdessen dorthin translatieren, bevor du rotierst...

Ich würd das aber nicht als "fehlerhafte" Implementierung bezeichnen...

jessi
22-11-2002, 17:02
aber genau das, was du beschreibst führt nicht zu einer drehung um die eigene achse!! schön, dass der ursprung des objekts in den ursprung des koordinatensystems verschoben wird, aber wenn die achse des objekts nicht parallel zur achse des koordinatensystems ist, dann müßten erst zwei weitere drehungen der achse des objekts passieren ehe ich das objekt, dann "selbst" drehe. nachzulesen ist das im buch. weiß jetzt leider nicht welche seiten das waren, da ich das buch jetzt nicht dabei habe. es wird auf jeden fall zwischen zwei fällen unterschieden: 1) die achse des zu drehenden objekts ist parallel zur achse des koordinatensystems in dem es abgebildete wird; 2) die achse des objekts liegt 'irgendwie' im koordinatensystem in dem es abgebildet wird.
wir haben auch beide fälle in der vorlesung (2002-11-19) durchgenommen.
ich habe das auch im abgabegespräch erwähnt und mir wurde gesagt, dass das lt. angabe auch nicht verlangt war. (was meiner meinung nach nicht stimmt).

lg, j

jessi
22-11-2002, 17:20
@gck: schau dir mal den würfel an, wennst ihn zuerst einige mal um die z-achse rotieren läßt (damit die x-achse des objekts eben nicht mehr zur x-achse des koordinatensytstems parallel ist) und anschließend um die x-achse rotieren läßt.
du wirst sehen, dass der würfel nicht um die x-achse des objekts rotiert.
das mit dem beschreiben ist ein bißchen blöd ;) anhand von einem echten objekt könnte ich dir zeigen, was diese lösung macht und wie es meiner meinung nach eigentlich gemacht werden müßte.

lg, j

Jokeman
23-11-2002, 12:37
jessi, es steht doch nirgens in der angabe, dass das objekt um seine eigene achse rotieren soll... deshalb is die musterlösung in der hinsicht schon richtig...
Du hast nur die angabe... nicht unbedingt falsch... aber halt anders interpretiert ;)

tschurlo
23-11-2002, 18:56
Es steht nur, dass es um sich selbst rotiert werden soll, aber nicht dass die Achse dann Parallel zur Koordinatensystem-Achse sein soll.
Wie schaut's mit Bsp 4 aus?

gck
23-11-2002, 23:52
Achso sorry, ich hab deine "Beschwerde" falsch verstanden, ich dachte, du meinst, dass das Objekt um eine Welt-Achse rotiert.

Nein, meiner Meinung nach ist es schon richtig bzw. für den User logisch, dass das Objekt um seinen Mittelpunkt bzw. die Achse des Fensters, "angelegt" an den Mittelpunkt rotiert... zumindest erwarte ich das irgendwie, wenn ich auf Rotation clicke!

Wenn du eine allgemeine Rotation implentieren willst, kannst du die Verdrehung des Koordinatensystems ganz leicht erzeugen, so wie z.b. beim Kameramodell im Buch beschrieben! Btw. die Methode mit den normalisierten Vektoren ist vielleicht leichter zu implementieren!

jessi
26-11-2002, 10:58
ich sehe das nicht so, da ich mir von einem graphikprogramm erwarten würde, dass sich die operationen, die ich durchführen kann, sich auf mein abzubildendes objekt beziehen (was übrigens auch für die skalierung gilt) und nicht auf das koordinatensystems des canvas in dem es abgebildet wird.

so, und nun zum 4.bsp ;)