import javax.swing.*;
import java.awt.event.*;
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import com.sun.j3d.utils.geometry.Box;
import javax.vecmath.*;
public class game1017 extends JFrame {
float mx[][]=new float[5][5];
Matrix4f matrix;
public static void main(String[] args) {
game1017 sample = new game1017();
sample.setBounds(0, 0, 500,500);
sample.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
sample.setVisible(true);
}
public game1017() {
getContentPane().setLayout(new BorderLayout());
GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
Canvas3D canvas = new Canvas3D(config);
getContentPane().add(canvas, BorderLayout.CENTER);
BranchGroup scene = createSceneGraph();
SimpleUniverse universe = new SimpleUniverse(canvas);
universe.getViewingPlatform().setNominalViewingTransform();
universe.addBranchGraph(scene);
}
public BranchGroup createSceneGraph() {
BranchGroup objRoot = new BranchGroup();
objRoot.addChild(createLight());
Transform3D t3d = new Transform3D();
mx[1][1]=1.0f;
mx[2][2]=1.0f;
mx[3][3]=1.0f;
mx[4][4]=1.0f;
mx[1][4]=0.0f;
makematrix();
t3d.set(matrix);
TransformGroup objTrans = new TransformGroup(t3d);
objRoot.addChild(objTrans);
Appearance ap = new Appearance();
Material ma = new Material();
ma.setDiffuseColor(0.0f, 0.0f, 1.0f);
ap.setMaterial(ma);
Box box = new Box(0.1f,0.1f,0.1f,ap);
Transform3D t4d = new Transform3D();
mx[1][4]=0.5f;
makematrix();
t4d.set(matrix);
TransformGroup objTrans2 = new TransformGroup(t4d);
objRoot.addChild(objTrans2);
Box box2 = new Box(0.1f,0.1f,0.1f,ap);
objTrans.addChild(box);
objTrans2.addChild(box2);
objRoot.compile();
return objRoot;
}
private Light createLight(){
DirectionalLight light = new DirectionalLight( true,
new Color3f(0.0f, 0.0f, 1.0f),
new Vector3f(0.0f, 0.0f, -1.0f));
light.setInfluencingBounds(new BoundingSphere(new Point3d(), 100.0));
return light;
}
void makematrix(){
matrix = new Matrix4f(mx[1][1], mx[1][2],mx[1][3],mx[1][4],
mx[2][1], mx[2][2],mx[2][3],mx[2][4],
mx[3][1], mx[3][2],mx[3][3],mx[3][4],
mx[4][1], mx[4][2],mx[4][3],mx[4][4]);
}
}
最終更新:2011年03月06日 23:56