Zitat von
Phobeus:
Ich habe wirklich echte Probleme Dir zu folgen, da das von Dir beschriebene Verhalten doch eigentlich genau das ist, was man erwarten würde.
Jain ^^. Stell dir vor, du drehst ein Objekt mit der Maus mit einer Linksbewegung um ca. 90° um die Y-Achse. Du lässt die Maus los, und willst nun das Objekt so neigen, dass es seine Oberseite preis gibt. Also rein intuitiv mit einer Mausbewegung nach unten. Was passiert aber nun? Das Objekt neigt sich nach links! Weil durch die vorige Drehung ja die X-Achse verdreht wurde, und von nun an auf einmal die Z-Achse die richtige Wahl wäre um das Objekt wie gewünscht zu neigen.
Das selbe gilt verkehrt, wenn die Drehoperationen vertauscht ausgeführt werden.
Zumindest die erste Drehung soll also geschehen, OHNE dass sich die Achsen mitdrehen!
Zitat von
Phobeus:
Im Anhang ein lieblos zusammengefrickeltes Sample basierend auf der
SVN-Version von easySDL, dass Dir vielleicht weiter hilft.
Lieben Dank dafür - leider habe ich die verwendeten Units nicht, bzw. kenn ich (noch) keine Bezugsquelle. Aber das ist u.U. auch nicht mehr nötig (s.u.)
Zitat von
Phobeus:
Bedenken solltest Du zwei Dinge: Es ist hilfreich, wenn das Objekt sich im Mittelpunkt befindet. Sprich: Ein Quad von -0.5/-0.5 nach 0.5/0.5 ist leichter zu rotieren als eines von 0/0 nach 1/1. Ansonsten dreht sich das Gebilde halt nicht ums Zentrum, sondern wie ein Planet um die Sonne.
Das hatte ich bereits bedacht, so dass ich erst rotiere, und dann verschiebe. (Mathe-LK'ler 8))
Zitat von
Phobeus:
Auch solltest Du bedenken, dass Matrix-Operationen eine eigenart haben: A*B != B*A. Es spielt also eine große Rolle um welche Achse Du zunächst drehst. In deinem Fall bietet sich vermutlich an erst die X und dann um die Y-Achse zu drehen.
Nunja, daher rührt letztlich das eigentliche Problem. Aber:
Zitat von
Phobeus:
die beiden letzteres Tutorials aus der mathematischen Rubrik unserer Tutorials
bzw. das letzte dieser hat mich auf eine Idee gebracht! Da so wie dort beschrieben eine Drehung um ein beliebiges Koordinatensystem sehr einfach geht, könnte ich mir vorstellen, dass wenn ich zwischen den beiden Drehungen das lokale Koordinatensystem zurück setze, ich den von mir gewünschten Effekt erzielen kann. So dass beim lokalen KO-System des Objektes quasi die Achsen immer in Ausgangsausrichtung bleiben. Dieses Zurücksetzen war mit dem Welt-KO-System ja nicht so einfach drin, da dort ja die "Kamera" an und für sich verdreht wird.
Ich werd's einfach mal testen, und mich im Vorfeld ganz kräftig bei dir bedanken
Gruss,
Fabian
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel