PDA

View Full Version : [Frage] rotation ???


jessi
16-11-2002, 19:20
hat eigentlich schon irgendwer eine richtig funktionierende rotation ?? bei mir wackelt das objekt nur unkontrolliert hin und her!!!

wenn die achse des objekts parallel zur einer achse des canvas liegt, dann halte ich mich an die version von seite 409-412. ansonsten verwende ich die generelle version (seite 413ff).
paßt das so ??

hat hier jemand einen tip ??

weedsoul
17-11-2002, 00:41
ich kann dir bei deinem problem leider auch nicht richtig weiterhelfen, da ich selber noch probleme bei der rotation habe. bei mir rotiert das objekt zwar schon richtig aber es wird immer kleiner je länger ich es rotiere.
vielleicht kann mir wer sagen warum das so ist?! (ich wende die rotation auf die vertexTable-werte an)

wrzsef
17-11-2002, 13:22
Das gleiche Problem habe ich auch! Die Objekte werden bei rotieren immer kleiner!!! Sind wir die einzigen mit diesem Problem???
Habe auch schon ein Thema gepostet ("Rotation: Verformung inklusive?"), auf das mir noch keiner geantwortet hat.

Auf alle Fälle habe ich die Rotation, wie im Buch ab S. 413 (general three-dimensional rotation) in den vorgegebenen 6 Schritten) - implementiert. Aber es funktioniert einfach nicht (das Objekt hüpft hin und her - insgesamt dreht es sich doch irgendwie - aber auf keinen Fall so wie vorgesehen! ;(

Wobei meine Methode mir etwas merkwürdig erscheint:
im Buch ist ja nur beschrieben wie man auf die jeweiligen sin und cos der Winkel für die Zwischenrotationen kommt. Ich wollte aber keine neuen Matrizen definieren und habe mir mit der Inversen Sinus Methode aus java.Math den Winkel ausgerechnet. Die Lösung scheint mir ein bissi umständlich...

Könnte der Grund, wieso die Beschreibung aus dem Buch nicht 1:1 übernommen werden kann, der sein, dass unser Koordinatensystem anders aussieht?

Deep Thought
17-11-2002, 13:57
Ich habe da einen Verdacht...
Der Funktionsaufruf:
wasauchimmer.transformPoints(anzVertex, transformed, transformed);
funktioniert nicht für alle Transformationen.
Das Eingangsarray darf nicht gleich dem Ausgansarray sein, da alle Koordinaten eines Punktes für die Berechnung des nächsten Punktes gebraucht werden.
d.h. es wird der neue x - Wert berechnet und dann statt dem alten für die nächsten Berechnungen herangezogen.

Wenn ihr das also so verwendet habt, dann gibt 2 Lösungsmöglichkeiten:
1) ein 2. Array von Punkten verwenden.
2) In der Methode transformPoints den alten Punkt jeweils zwischenspeichern und mit diesen Werten die neuen Punkte berechnen.