Main Menu

Positions Reset

Started by Locusta, June 02, 2015, 10:35:24 PM

Previous topic - Next topic

Locusta

Hi.
ich hab mal wieder ein kleines Preblem. hab das Forum durchwühlt aber keine Lösung für meine Probleme/Fragen gefunden.
Hoffe das ich hier in der deutschen Ecke meine Fragen so einfach rein packen kann und damit gegen eine Regel verstoße.  :-[

2 Fragen.
1.
mein Object3D bewegt sich mit ball.translate(SimpleVector.create(speed * delta, 0, 0));
nun möchte ich es resetten. soll heißen das es wieder an Position 0, 0, 0 gesetzt werden soll.
doch mit ball.translate(SimpleVector.create(0, 0, 0)); wird er nicht an die pos gesetzt sondern um irre 0 Einheiten verschoben.
ich kann keine Methode finden in der man sagt setze auf ...

2.
meine 2. Frage ist etwas komisch aber ich hoffe dass ihr meint was ich meine.
Ich verstehe nicht ganz den Unterschied zwischen den Methoden

SimpleVector raduius = new SimpleVector(1.5708, 0, 0);
Matrix matrix = raduius.normalize().getRotationMatrix();
obj.rotateAxis(matrix.getXAxis(), raduius.length());
bzw.
obj.rotateX(1.5708);

wie wird denn nun wo und was gedreht?
oder ist das egal wenn ich einfach nur das komplette
Model innerhalb der Welt bewegt/gedreht haben möchte?

EgonOlsen

Am einfachsten geht das mit


obj.clearTranslation();


rotateAxis(..) dreht um eine beliebige Achse im Objektraum. Das ist sinnvoll, wenn du z.B. den Spieler hoch-/runterschauen lassen willst. rotateX,Y und Z drehen um konstante Achsen X,Y und Z, die sich aber nicht ändern, wenn sich das Objekt selber dreht. Dein erstes Beispiel für rotateAxis ist etwas...merkwürdig. Das sieht mir nach keiner sinnvollen Anwendung dafür aus. Was genau willst du denn wie drehen?

Locusta

oki danke.
obj.clearTranslation(); funktioniert wunderbar.

nur zum Verständnis.
rotateAxis(..) dreht das Objekt auf den Achsen des Objektes selbst und
rotateX(..) dreht es dann sozusagen auf den Achsen der Welt?

das merkwürdige Beispiel für die Drehung hab ich aus dem ParallaxMapping Example.
da wo das plane mit der Maus gedreht/bewegt wird.

EgonOlsen

Quote from: Locusta on June 03, 2015, 10:58:07 AM
rotateAxis(..) dreht das Objekt auf den Achsen des Objektes selbst und
rotateX(..) dreht es dann sozusagen auf den Achsen der Welt?
Quasi ja. Wobei man natürlich in rotateAxis(...) alle möglichen Achsen reingeben kann. Die müssen nicht zwingend einen Bezug zum Objekt haben.

Locusta