📄 tra.java
字号:
import java.applet.Applet;
import java.awt.BorderLayout;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.image.TextureLoader;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.*;
import javax.media.j3d.*;
import javax.vecmath.*;
public class Tra extends Applet {
private BranchGroup createSceneGraph() {
BranchGroup objRoot = new BranchGroup();
objRoot.addChild(createObject());
BoundingSphere bounds=new BoundingSphere(new Point3d(0.0,0.0,0.0),100.0);
Background bg=new Background(new Color3f(1.0f,1.0f,1.0f));
bg.setApplicationBounds(bounds);
objRoot.addChild(bg);
objRoot.compile();
return objRoot;
}
private Group createObject() {
Transform3D t = new Transform3D();
TransformGroup objTrans = new TransformGroup(t);
objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
Appearance ap=new Appearance();
Color3f ambient=new Color3f(1.0f,0.0f,0.0f);
Color3f emissive = new Color3f(0.8f,0.2f,0.2f);
Color3f diffuse=new Color3f(1.f,1.f,0.f);
Color3f specular = new Color3f(1.0f,1.0f,1.0f);
ap.setMaterial(new Material(ambient,emissive,diffuse,specular,100.0f));
PolygonAttributes pa = new PolygonAttributes();
pa.setCullFace(PolygonAttributes.CULL_NONE);
ap.setPolygonAttributes(pa);
TransparencyAttributes ta=new TransparencyAttributes();
ta.setCapability(TransparencyAttributes.ALLOW_VALUE_WRITE);
ta.setTransparencyMode(ta.BLENDED);
ta.setTransparency(.0f);
ap.setTransparencyAttributes(ta);
Alpha alpha = new Alpha(-1,
Alpha.INCREASING_ENABLE|Alpha.DECREASING_ENABLE,
0, 0, 8000, 0, 0, 8000, 0, 0);
TransparencyInterpolator transparency=
new TransparencyInterpolator(alpha,ta,.0f,1.f);
BoundingSphere bounds=new BoundingSphere(new Point3d(0.0,0.0,0.0),100.0);
transparency.setSchedulingBounds(bounds);
Shape3D shape = new myShape();
shape.setAppearance(ap);
objTrans.addChild(shape);
objTrans.addChild(transparency);
Transform3D yAxis = new Transform3D();
Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE,
0, 0, 4000, 0, 0, 0, 0, 0);
RotationInterpolator rotator =
new RotationInterpolator(rotationAlpha, objTrans, yAxis,
0.0f, (float) Math.PI*2.0f);
rotator.setSchedulingBounds(bounds);
objTrans.addChild(rotator);
return objTrans;
}
public Tra() {
setLayout(new BorderLayout());
Canvas3D c = new Canvas3D(null);
add("Center", c);
BranchGroup scene = createSceneGraph();
SimpleUniverse u = new SimpleUniverse(c);
u.getViewingPlatform().setNominalViewingTransform();
u.addBranchGraph(scene);
}
public static void main(String[] args) {
new MainFrame(new Tra(), 540,361);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -