?? freeaxis.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 + -