⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mysphere.java

📁 这个就是目前我收集,以及自己写的一些java3d的原码,大部分都可以运行,适合和我一样,刚刚开始对java3D心动的菜鸟
💻 JAVA
字号:
package com.java3d.test;

import java.applet.Applet;
import java.awt.BorderLayout;


import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.universe.*;

import javax.media.j3d.*;
import javax.vecmath.Point3d;

public class mySphere extends Applet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * @param args
	 */

	//public mySphere() {
	//}

	public void init() {

		Canvas3D canvas = new Canvas3D(SimpleUniverse
				.getPreferredConfiguration());
		setLayout(new BorderLayout());
		add("Center", canvas);
		
		
		SimpleUniverse u = new SimpleUniverse(canvas);
		u.getViewingPlatform().setNominalViewingTransform();
		u.addBranchGraph(getBranchGroup4());

	}
	
	
	
	
	public BranchGroup getBranchGroup(){
		
		
		BranchGroup objRoot = new BranchGroup();
		Transform3D rotate = new Transform3D();
		rotate.rotY(Math.PI/4.0d);
		TransformGroup objRotate = new TransformGroup(rotate);
		objRotate.addChild(new ColorCube(0.4));
		objRoot.addChild(objRotate);

		
		return objRoot;
		
	}
	
	public BranchGroup getBranchGroup2(){
		
		
		BranchGroup objRoot = new BranchGroup();
		Transform3D rotate = new Transform3D();
		Transform3D tempRotate = new Transform3D();
		rotate.rotX(Math.PI/4.0d);
		tempRotate.rotY(Math.PI/4.0d);
		rotate.mul(tempRotate);
		TransformGroup objRotate = new TransformGroup(rotate);
		objRotate.addChild(new ColorCube(0.4));
		objRoot.addChild(objRotate);

		
		return objRoot;
		
	}
	
	public BranchGroup getBranchGroup3(){
		
		
		 BranchGroup objRoot = new BranchGroup();
		
		// 创建变换组,并用单位矩阵来初始化。
		// 并加其作为子图的孩子结点加到子图中。
		TransformGroup objSpin = new TransformGroup();
		objSpin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
		
		
		// 创建一个简单的形状叶子结点.并把加其入子图中。
		// ColorCube是一个方便的工具类
		objSpin.addChild(new ColorCube(0.4));
		
		 // create time varying function to drive the animation
		 Alpha rotationAlpha = new Alpha(-1, 4000);
		
		 //创建一个新的Behavior对象来实现预期的操作。
		 // 并指定其形变对象,把其作为孩子结点加入到
		 // 场景图中。
		 RotationInterpolator rotator =
		 new RotationInterpolator(rotationAlpha, objSpin);
		
		 // 一个范围球体是行为活跃区域。
		 BoundingSphere bounds = new BoundingSphere();
		 rotator.setSchedulingBounds(bounds);
		 objSpin.addChild(rotator);


		 objRoot.addChild(objSpin);
		
		return objRoot;
		
	}
	
	
	
	public BranchGroup getBranchGroup4(){
		
		
		 BranchGroup objRoot = new BranchGroup();
		
		// 创建变换组,并用单位矩阵来初始化。
		// 并加其作为子图的孩子结点加到子图中。
		Transform3D tf3d = new Transform3D();
		Transform3D tf3d2 = new Transform3D();
		
			tf3d.rotX(Math.PI/4.0d);
			tf3d2.rotY(Math.PI/4.0d);
			tf3d.mul(tf3d2);
		 
		TransformGroup objRotate = new TransformGroup(tf3d);
			
			
		TransformGroup objSpin = new TransformGroup();
		objSpin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
		// 创建一个简单的形状叶子结点.并把加其入子图中。
		// ColorCube是一个方便的工具类
		objSpin.addChild(new ColorCube(0.4));
		
		

		
		 // create time varying function to drive the animation
		 Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE | Alpha.DECREASING_ENABLE, 0, 0, 4000, 0, 0, 4000, 0, 0);
		
		 //创建一个新的Behavior对象来实现预期的操作。
		 // 并指定其形变对象,把其作为孩子结点加入到
		 // 场景图中。
		 RotationInterpolator rotator =
		 new RotationInterpolator(rotationAlpha, objSpin);
		
		 // 一个范围球体是行为活跃区域。
		 BoundingSphere bounds = new BoundingSphere(new Point3d(3.0, 0.0, 0.0), 1.0);
		 rotator.setSchedulingBounds(bounds);
		 objSpin.addChild(rotator);
		 
		 
		 objRotate.addChild(objSpin);
		 objRoot.addChild(objRotate);
		
		return objRoot;
		
	}
	
	
	
	
	

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		  new MainFrame(new mySphere(), 256, 256);
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -