アットウィキロゴ

314

import javax.media.j3d.*;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.Box;
import javax.vecmath.*;
import java.awt.*;
import javax.swing.*;

public class pro0314
{

//=============================================================================
//メイン・メソッド
public static void main(String[] args)
{
 pro0314 test = new pro0314();
}


//=============================================================================
//コンストラクタ
public pro0314()
{

 //============================================================================
 //まずは、基礎フレームの設定。
 //============================================================================

 JFrame frame = [[new]] JFrame();
 frame.setSize(250,250);
 frame.setTitle("Translation_test");
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 JPanel cp = new JPanel();
 cp.setLayout(null);
 frame.add(cp);


 //============================================================================
 //次にJava3D関係の設定。
 //============================================================================

 GraphicsConfiguration g_config = SimpleUniverse.getPreferredConfiguration();
 Canvas3D canvas = new Canvas3D(g_config);
 [[canvas]].setBounds(0,0,250,250);
 cp.add(canvas);


 //============================================================================
 //空のSimpleUniverseを生成。
 //============================================================================

 SimpleUniverse universe = new SimpleUniverse(canvas);
 frame.setVisible(true);


 //============================================================================
 //視点の設定
 //============================================================================
 ViewingPlatform camera = universe.getViewingPlatform();
 camera.setNominalViewingTransform();


 //============================================================================
 //ライトの設定
 //============================================================================

 Color3f light_color = new Color3f(1.0f,1.0f,1.0f);
 Vector3f light_direction = new Vector3f(0.2f,-0.2f,-0.6f);
 DirectionalLight light = new DirectionalLight(light_color,light_direction);
 BoundingSphere bounds = new BoundingSphere();
 light.setInfluencingBounds(bounds);
 BranchGroup group2 = new BranchGroup();
 group2.addChild(light);
 universe.addBranchGraph(group2);


 //============================================================================
 //Boxを作る
 //============================================================================

 Appearance appearance = new Appearance();
 Material material = new Material();
 material.setDiffuseColor(0.9f,0.75f,0.75f);
 appearance.setMaterial(material);
 Box [[box]] = new Box(0.3f,0.3f,0.3f,appearance);


 //============================================================================
 //BoxをTransfomrGroupに追加。さらにTransformGroupをBranchGroupへ登録。
 //============================================================================

 //BranchGroupを生成
 BranchGroup group1 = new BranchGroup();

 //TransformGroupを生成
 TransformGroup transform_group = new TransformGroup();
  
 //座標変換の上書きを許可 
 transform_group.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);

 //TransformGroupにBoxを登録
 transform_group.addChild(box);

 //BranchGroupにTransformGroupを登録
 group1.addChild(transform_group);

 //最後に、SimpleUniverseにBranchGroupを登録
 universe.addBranchGraph(group1);

 //============================================================================
 //平行移動します。
 //============================================================================

 //平行移動のためのベクトル生成。今回は右へ0.4動かす。
 Vector3f vector1 = new Vector3f(0.4f,0.0f,0.0f);

 //Transform3Dを生成
 Transform3D transform1 = new Transform3D();

 //Transform3Dに、平行移動としてvectorを登録。
 transform1.setTranslation(vector1);

 //TransformGroupにTransform3Dを登録。
 transform_group.setTransform(transform1);


}

}
最終更新:2010年09月21日 14:16