📄 simplemousebhv.java
字号:
//SimpleMouseBhv.java
//演示如何使用MouseBehavior对象
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Frame;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.behaviors.mouse.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import java.awt.event.*;
import java.util.Enumeration;
public class SimpleMouseBhv extends Applet {
public BranchGroup createSceneGraph() {
BranchGroup objRoot = new BranchGroup();
// 创建根分支节点
objRoot.addChild(new Axis());
// 创建x,y,x坐标轴
TransformGroup objTG = null;
Transform3D objT3D = new Transform3D();
MouseRotate myMR = null;
MouseTranslate myMT = null;
MouseZoom myMZ = null;
// 创建左边的局部坐标系,添加旋转、平移功能
objT3D.setTranslation(new Vector3f(-0.6f, 0.0f, -0.6f));
objTG = new TransformGroup(objT3D);
objTG.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objTG.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
objRoot.addChild(objTG);
objTG.addChild(new ColorCube(0.4));
// 添加旋转功能
myMR = new MouseRotate();
myMR.setTransformGroup(objTG);
myMR.setSchedulingBounds(new BoundingSphere());
objRoot.addChild(myMR);
// 添加平移功能
myMT = new MouseTranslate();
myMT.setTransformGroup(objTG);
myMT.setSchedulingBounds(new BoundingSphere());
objRoot.addChild(myMT);
// 创建右边的局部坐标系,添加旋转,缩放功能
objT3D.setTranslation(new Vector3f( 0.6f, 0.0f, -0.6f));
objTG = new TransformGroup(objT3D);
objTG.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objTG.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
objRoot.addChild(objTG);
objTG.addChild(new ColorCube(0.4));
// 添加旋转功能
myMR = new MouseRotate();
myMR.setTransformGroup(objTG);
myMR.setSchedulingBounds(new BoundingSphere());
objRoot.addChild(myMR);
// 添加缩放功能
myMZ = new MouseZoom();
myMZ.setTransformGroup(objTG);
myMZ.setSchedulingBounds(new BoundingSphere());
objRoot.addChild(myMZ);
objRoot.compile();
return objRoot;
}
public SimpleMouseBhv() {
setLayout(new BorderLayout());
Canvas3D canvas3D = new Canvas3D(null);
add("Center", canvas3D);
BranchGroup scene = createSceneGraph();
SimpleUniverse simpleU = new SimpleUniverse(canvas3D);
simpleU.getViewingPlatform().setNominalViewingTransform();
simpleU.addBranchGraph(scene);
}
public static void main(String[] args) {
Frame frame = new MainFrame(new SimpleMouseBhv(), 256, 256);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -