import javax.media.j3d.*;
import javax.vecmath.*;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;
import java.util.Timer;
public class game0217 implements Runnable{
SimpleUniverse universe;
BranchGroup group1;
TransformGroup transform_group1;
Transform3D transform1;
public static void main(String[] args)
{
game0217 test = new game0217();
}
public game0217() {
JFrame frame = new JFrame();
frame.setSize(250,250);
frame.setTitle("pro0216");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel cp = new JPanel();
cp.setLayout(null);
frame.add(cp);
GraphicsConfiguration g_config = SimpleUniverse.getPreferredConfiguration();
Canvas3D canvas = new Canvas3D(g_config);
canvas.setBounds(0,0,250,250);
cp.add(canvas);
universe = new SimpleUniverse(canvas);
group1 = new BranchGroup();
ColorCube cube = new ColorCube(0.4f);
transform_group1 = new TransformGroup();
transform_group1.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
transform_group1.addChild(cube);
transform1 = new Transform3D();
group1.addChild(transform_group1);
universe.addBranchGraph(group1);
ViewingPlatform vp = universe.getViewingPlatform();
TransformGroup Camera = vp.getViewPlatformTransform();
Transform3D view_pos = new Transform3D();
Vector3f pos_vec = new Vector3f(1.4f,1.4f,1.4f);
view_pos.setTranslation(pos_vec);
Transform3D view_dir = new Transform3D();
Transform3D view_dir2 = new Transform3D();
view_dir.rotY(Math.PI/4);
view_dir2.rotX(-Math.PI/4 + 0.1f);
view_dir.mul(view_dir2);
view_pos.mul(view_dir);
Camera.setTransform(view_pos);
frame.setVisible(true);
Thread th=new Thread(this);
th.start();
}
public void run() {
int t;
float x;
t=0;
while(t<100){
x=t*0.01f;
transform1.set(new Vector3d(x, 0.0, -x));
transform_group1.setTransform(transform1);
try{
Thread.sleep(100);
}catch(InterruptedException e){}
t=t+1;
}
}
}
最終更新:2011年02月15日 02:31