Raumkoordinaten eines Java3D-Objektes veraendern
-
Wie kann man mit Java3D die Positionen von Objekten im Raum veraendern?
Ein Beispielcode, waere gut.Wuensche aussedem allen, die dieses Forum besuchen, einen schoenen zweiten Advent! :xmas1: :xmas2:
-
Objekte lassen sich mit Hilfe von TransformGroups verschieben.
Beispiele dafür findest du z.B. hiermfg xorm :xmas2:
-
Danke fuer den Link, xorm!
Ich habe den Code von der Seite uebernommen.
Drehen klappt bei mir prima, aber ich bekomme beim compilieren bei 'new' vor dem Vector3f einen "cannot find symbol" Fehler:import java.awt.Frame; import java.awt.GraphicsConfiguration; import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.geometry.ColorCube; import javax.media.j3d.*; import javax.vecmath.*; public class Welt extends Frame { public Welt (String title) { super(title); GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration(); Canvas3D canvas3d = new Canvas3D (config); add(canvas3d); SimpleUniverse universe = new SimpleUniverse(canvas3d); universe.getViewingPlatform().setNominalViewingTransform(); ColorCube colorcube = new ColorCube(0.1); Transform3D transform3d = new Transform3D(); transform3d.rotY (Math.toRadians(30)); transform3d.setTranslation(new Vector3f(0.1, 0.1, 0.1)); TransformGroup transroot = new TransformGroup(transform3d); transroot.addChild(colorcube); BranchGroup branchgroup = new BranchGroup(); branchgroup.addChild(transroot); universe.addBranchGraph(branchgroup); } public static void main(String args[]) { Welt beispiel = new Welt("Beispiel"); beispiel.setSize(600,400); beispiel.setVisible(true); } }
Vector3f muesste in javax.vecmath.* zu finden sein, aber wieso mukkiert der Compiler wegen new?