📄 mycone.java
字号:
package com.java3d.test;
import java.applet.Applet;
import java.awt.BorderLayout;
import javax.media.j3d.Alpha;
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.Node;
import javax.media.j3d.RotationInterpolator;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.vecmath.Color3f;
import com.sun.j3d.utils.applet.MainFrame;
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.universe.SimpleUniverse;
public class myCone extends Applet{
/**
* @param args
*/
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(getBranchGroup());
}
private BranchGroup getBranchGroup() {
// TODO Auto-generated method stub
BranchGroup bg = new BranchGroup();
bg.addChild(getTransformGroup());
bg.compile();
return bg;
}
public Node getPrimitive(){
Node node = (Node)getColorCube();
return node;
}
public Cone getCone(){
Appearance app = new Appearance();
Material material = new Material();
material.setEmissiveColor(new Color3f(1.0f,0.0f,0.0f));
app.setMaterial(material);
Cone cone = new Cone(.5f,1.5f,app);
return cone;
}
public ColorCube getColorCube(){
ColorCube colorCube = new ColorCube(0.4);
return colorCube;
}
public TransformGroup getTransformGroup(){
Transform3D tf = new Transform3D();
//tf.rotX(Math.PI/4.0d);
tf.rotX(-1);
TransformGroup tfg = new TransformGroup(tf);
tfg.addChild(getTransformGroup2());
return tfg;
}
public TransformGroup getTransformGroup2(){
TransformGroup tfg = new TransformGroup();
tfg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
Alpha rotationAlpha = new Alpha(-1, 4000);
RotationInterpolator rotator = new RotationInterpolator(rotationAlpha, tfg);
BoundingSphere bounds = new BoundingSphere();
rotator.setSchedulingBounds(bounds);
tfg.addChild(getPrimitive());
tfg.addChild(rotator);
return tfg;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new MainFrame(new myCone(), 256, 256);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -