Author Topic: Positions Reset  (Read 1584 times)

Offline Locusta

  • byte
  • *
  • Posts: 6
    • View Profile
Positions Reset
« on: June 02, 2015, 10:35:24 pm »
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?

Offline EgonOlsen

  • Administrator
  • quad
  • *****
  • Posts: 11776
    • View Profile
    • http://www.jpct.net
Re: Positions Reset
« Reply #1 on: June 03, 2015, 09:40:15 am »
Am einfachsten geht das mit

Code: [Select]
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?

Offline Locusta

  • byte
  • *
  • Posts: 6
    • View Profile
Re: Positions Reset
« Reply #2 on: June 03, 2015, 10:58:07 am »
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.

Offline EgonOlsen

  • Administrator
  • quad
  • *****
  • Posts: 11776
    • View Profile
    • http://www.jpct.net
Re: Positions Reset
« Reply #3 on: June 03, 2015, 11:16: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.

Offline Locusta

  • byte
  • *
  • Posts: 6
    • View Profile
Re: Positions Reset
« Reply #4 on: June 03, 2015, 11:31:47 am »
ah okay.
dankeschön.