Meine Frage: Kann ich den Viewpoint mit der Bewegung der Maus verändern, ohne dass ich diese geklickt halte?
Zuletzt bearbeitet von einem Moderator:
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println(e.getPoint());
}
import java.awt.GraphicsConfiguration;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.swing.JFrame;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.SimpleUniverse;
public class Welt extends JFrame {
public Welt (String title) {
super(title);
// AnzeigeInfos holen (Farbtiefe, usw...
GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
// ein neues Canvas mit den AnzeigeInfos erzeugen und dem Frame hinzufügen
Canvas3D canvas3d = new Canvas3D (config);
canvas3d.addMouseMotionListener(new MouseMotionListener() {
@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println(e.getPoint());
}
@Override
public void mouseDragged(MouseEvent e) {
// TODO Auto-generated method stub
}
});
add(canvas3d);
// ein neues Universum im Canvas erzeugen und eine Betrachtungsebene erzeugen
SimpleUniverse universe = new SimpleUniverse(canvas3d);
universe.getViewingPlatform().setNominalViewingTransform();
// ein kleiner Würfel
ColorCube colorcube = new ColorCube();
// neue Transform Informationen
Transform3D transform3d = new Transform3D();
// neue Transformgruppe
TransformGroup transroot = new TransformGroup(transform3d);
//colorcube an Transformgruppe hängen
transroot.addChild(colorcube);
//neue Branchgruppe
BranchGroup branchgroup = new BranchGroup();
//Transformgruppe an Branchgruppe hängen
branchgroup.addChild(transroot);
// ... an das Universum hängen
universe.addBranchGraph(branchgroup);
}
public static void main(String args[]) {
Welt beispiel = new Welt("Beispiel");
beispiel.setSize(600, 400);
beispiel.setVisible(true);
}
}