📄 simplekeybhv.java
字号:
//SimpleKeyBhv.java
//演示如何使用KeyNavigatorBehavior对象
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 javax.media.j3d.*;
import javax.vecmath.*;
import java.awt.event.*;
import java.awt.AWTEvent;
import java.util.Enumeration;
import com.sun.j3d.utils.behaviors.keyboard.*;
public class SimpleKeyBhv extends Applet {
public BranchGroup createSceneGraph(SimpleUniverse su) {
BranchGroup objRoot = new BranchGroup();
// 创建根分支节点
objRoot.addChild(new Axis());
// 添加x,y,z坐标轴
objRoot.addChild(new ColorCube(0.4));
// 添加彩色六面体
// 添加KeyNavigatorBehavior对象
Vector3f translate = new Vector3f();
Transform3D T3D = new Transform3D();
TransformGroup vpTrans = su.getViewingPlatform().getViewPlatformTransform();
// 获得观察者所处的TransformGroup对象
translate.set( 0.0f, 0.0f, 5.0f);
T3D.setTranslation(translate);
vpTrans.setTransform(T3D);
// 将观察者摆放到(0,0,3)处
KeyNavigatorBehavior keyNavBeh = new KeyNavigatorBehavior(vpTrans);
// 添加KeyNavigatorBehavior对象
keyNavBeh.setSchedulingBounds(new BoundingSphere(new Point3d(),1000.0));
// 设置KeyNavigatorBehavior对象的作用范围
objRoot.addChild(keyNavBeh);
// 添加到场景中接收输入
objRoot.compile();
return objRoot;
}
public SimpleKeyBhv() {
setLayout(new BorderLayout());
Canvas3D canvas3D = new Canvas3D(null);
add("Center", canvas3D);
SimpleUniverse simpleU = new SimpleUniverse(canvas3D);
BranchGroup scene = createSceneGraph(simpleU);
simpleU.addBranchGraph(scene);
}
public static void main(String[] args) {
Frame frame = new MainFrame(new SimpleKeyBhv(), 256, 256);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -