📄 rotation3d.java
字号:
package rotation3d;import java.applet.Applet;import java.awt.BorderLayout;import java.awt.*;import java.awt.event.*;import java.awt.GraphicsConfiguration;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.*;/** * <p>Title: 3D形体旋转演示</p> * <p>Description: 创建3D形体并使之以Y坐标轴旋转</p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: 中国农业大学计算机系</p> * @author 彭波 * @version 1.0 */public class Rotation3D extends Applet { boolean isStandalone = false; private SimpleUniverse u = null; public BranchGroup createSceneGraph() { // 定义创建3D场景图方法 BranchGroup objRoot = new BranchGroup(); TransformGroup objTrans = new TransformGroup(); objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); objRoot.addChild(objTrans); objTrans.addChild(new ColorCube(0.4)); // 创建三维立方体 Transform3D yAxis = new Transform3D(); Alpha rotationAlpha = new Alpha(-1, 4000); RotationInterpolator rotator = // 创建旋转变量 new RotationInterpolator(rotationAlpha, objTrans, yAxis, 0.0f, (float) Math.PI*2.0f); BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0); rotator.setSchedulingBounds(bounds); objRoot.addChild(rotator); objRoot.compile(); return objRoot; } public Rotation3D() { } public void init() { setLayout(new BorderLayout()); GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration(); Canvas3D c = new Canvas3D(config); add("Center", c); BranchGroup scene = createSceneGraph(); u = new SimpleUniverse(c); u.getViewingPlatform().setNominalViewingTransform(); u.addBranchGraph(scene); } public void destroy() { u.cleanup(); } //Main method public static void main(String[] args) { Rotation3D applet = new Rotation3D(); applet.isStandalone = true; Frame frame; frame = new Frame() { protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } } public synchronized void setTitle(String title) { super.setTitle(title); enableEvents(AWTEvent.WINDOW_EVENT_MASK); } }; frame.setTitle("3D形体旋转演示"); frame.add(applet, BorderLayout.CENTER); applet.init(); applet.start(); frame.setSize(300,300); Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); frame.setLocation((d.width - frame.getSize().width) / 2, (d.height - frame.getSize().height) / 2); frame.setVisible(true); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -