# Position der ViewingPlatform und Visueller Objekte setzen



## Bit2_Gosu (14. Feb 2009)

Hi!

Ich bin absoluter java3d anfänger und möchte eine application programmieren, in der sich in einem dreidimensionalen raum boxes bewegen.

Nun hab ich mir das gesamte java3d Tutorial von sun durchgelesen und kenne jetzt die Grundlagen von Java3d. 

Allerdings steht im gesamten Tutorial nicht mal, wie ich die Position der Viewing Platform beliebig setzen kann (ich kann sie auf die NominalViewing Position setzen, aber sonst nix...) bzw. wie ich die Position einer box festlegen kann.
Ich kann zwar x, y und z Dimensionen der Box festlegen, aber nicht x,y und z Dimensionen der Position der Box..

Könnt ihr mir in diesen zwei Dingen weiterhelfen?


----------



## Illuvatar (14. Feb 2009)

Naja, also die Klasse scheinst du ja schon zu kennen. Und mit getViewPlatformTransform() kriegst du von der Klasse eine TransformGroup, mit der du die ViewingPlatform genauso verschieben kannst - genauso wie man alles andere übrigens auch mit TransformGroups verschiebt/dreht/skaliert. Wenn du noch nie was von TransformGroups gehört hast... lies das Tutorial vielleicht besser nochmal


----------



## Bit2_Gosu (14. Feb 2009)

das hat schonmal sehr geholfen! Translation klappt jetzt.

Im Moment hänge ich aber dabei fest, die Orientation der Viewing Platform zu ändern.

Sagen wir, die habe sie wie folgt translatiert:


```
Transform3D transform = new Transform3D();
transform.setTranslation(new Vector3d(0,10,0));
```

Wir wollen nun eine Box im Ursprung beobachten


```
Box box = new Box(1, 1, 1, ap);
```

Dazu müssen wir die Orientierung der ViewingPlatform so ändern, dass sie entlang der y-Achse in Richtung negative Zahlen schaut. Da sie standardmäßig entlang der z-Achse in richtung negative Zahlen schaut (oder nicht?) versuchen wir das wie folgt:		


```
transform.rotX(Math.PI/2);
```

Wir rotieren die Plattform im Urzeigersinn um 90° um die x-Achse.

Irgendwie sehe ich so aber nicht die Oberseite des Würfels...


----------



## Bit2_Gosu (15. Feb 2009)

Ok, ich hab das Problem gelöst: Es darf sich nur eine TransformGroup im Szenengraph zwischen ViewingPlatform (oben) und ViewPlatform (unten) befinden. Deshalb muss ich Translationstransform und Rotationtransform zu einem Transform kombinieren und diesen an die einzige TransformGroup anhängen.


----------

