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

📄 freeaxis.java

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

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

import javax.media.j3d.Appearance;
import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.Material;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.vecmath.Color3f;
import javax.vecmath.Point3d;
import javax.vecmath.Vector3f;

import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.behaviors.vp.OrbitBehavior;
import com.sun.j3d.utils.geometry.Box;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.geometry.Cone;
import com.sun.j3d.utils.geometry.Primitive;
import com.sun.j3d.utils.geometry.Sphere;
import com.sun.j3d.utils.universe.SimpleUniverse;
import com.sun.j3d.utils.universe.ViewingPlatform;

public class freeAxis extends Applet{
	
	   private SimpleUniverse universe ;
	   private BranchGroup scene;
	   private Canvas3D canvas;
	   
	   //定义一个坐标为0,0,0 半径为1000的范围球体
	   private BoundingSphere bounds =
	           new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 1000.0);

	
	
	   
	   
	   
	   
	   public void setupView() {
			/** Add some view related things to view branch side 
			of scene graph */
		       // add mouse interaction to the ViewingPlatform
		       OrbitBehavior orbit = new OrbitBehavior(canvas,
		               OrbitBehavior.REVERSE_ALL|OrbitBehavior.STOP_ZOOM);
		       orbit.setSchedulingBounds(bounds);
			
			ViewingPlatform viewingPlatform = universe.getViewingPlatform();
		       // This will move the ViewPlatform back a bit so the
		       // objects in the scene can be viewed.
		       viewingPlatform.setNominalViewingTransform();
		       viewingPlatform.setViewPlatformBehavior(orbit);

			}
	   
	   
	   
	   
	   public BranchGroup createSceneGraph(){   
		   
	   Appearance appearance = new Appearance();
	   
	   
	   Color3f black = new Color3f(0.0f, 0.0f, 0.0f);
       Color3f white = new Color3f(1.0f, 1.0f, 1.0f);

       // Set up the material properties
       appearance.setMaterial(new Material(white, black, white, black, 1.0f));

       //use to build tree hierarchy
       BranchGroup topNode = new BranchGroup();


       Transform3D translate = new Transform3D();
       translate.setTranslation(new Vector3f(.5f,.5f,-0.5f));
       TransformGroup gimmeSpace = new TransformGroup(translate);

       Cone cone =  new Cone(.4f,0.8f,Primitive.GENERATE_NORMALS|Primitive.GENERATE_TEXTURE_COORDS,appearance);
       gimmeSpace.addChild(cone);
       topNode.addChild(gimmeSpace); //cone at bottom

       translate = new Transform3D();
       translate.setTranslation(new Vector3f(-0.5f,.5f,-0.5f));
       gimmeSpace = new TransformGroup(translate);

       Sphere sphere = new Sphere(.4f,Primitive.GENERATE_NORMALS|Primitive.GENERATE_TEXTURE_COORDS,appearance);
       gimmeSpace.addChild(sphere);
       topNode.addChild(gimmeSpace); //cone at bottom

       return topNode;

}
	   
	   
	   
	   
	   public BranchGroup createSceneGraph2(){
			
			BranchGroup objRoot = null;
			Appearance ap = null;
			Material material = null;
			
			objRoot = new BranchGroup();
			Transform3D tf3d = new Transform3D();
			Transform3D tf3d2 = new Transform3D();
			Transform3D tf3d3 = new Transform3D();
			
			tf3d.rotX(Math.PI/3);
			tf3d2.rotY(Math.PI/3);
			tf3d.mul(tf3d2);
			
			tf3d3.rotY(Math.PI/3);
			
			TransformGroup objTrans = new TransformGroup(tf3d3); 
			TransformGroup objTrans2 = new TransformGroup(tf3d); 
			
			ap  = new Appearance();
			material = new Material(); 
			
			
			material.setEmissiveColor(new Color3f(0.0f,1.0f,0.0f)); 
			ap.setMaterial(material); 
			Box  box = new Box(0.05f,0.5f,0.4f,1,ap);
			//Box  box2 = new Box();
			
			
			objTrans.addChild(box);
			objTrans2.addChild(new ColorCube(0.3));
			objRoot.addChild(objTrans2);
			objRoot.addChild(objTrans);
			
			
			
			objRoot.compile(); 
			return objRoot;
		}
	   
	   
	   public void init() {
		   
			BranchGroup scene = createSceneGraph();

			setLayout(new BorderLayout());
		       GraphicsConfiguration config =
		          SimpleUniverse.getPreferredConfiguration();
			canvas = new Canvas3D(config);
			add("Center", canvas);

			// Create a simple scene and attach it to the virtual universe
			universe = new SimpleUniverse(canvas);

			setupView();

			universe.addBranchGraph(scene);
		   }

	   
		   public void destroy() {
			universe.removeAllLocales();
		   }

		   //
		   // The following allows TransformOrder to be run as an application
		   // as well as an applet
		   //
		   public static void main(String[] args) {
			new MainFrame(new freeAxis(), 500, 500);
		   }

}

⌨️ 快捷键说明

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