トップページ > Java3D入門 > Java3Dでプリミティブを描画する(4)
今度は円柱を描画してみます。円柱はCylinder(シリンダー)クラスです。
Cylinder(float radius , float height , Appearance ap)上がCylinderクラスのコンストラクタです。第一引数の“radius”(レイディアス)は半径です。 第二引数の“height”(ハイト)は高さです。第三引数はお馴染みのAppearanceです。
あまり大きいサイズで生成すると、画面からはみ出てしまいます。テストプログラムでは 、ひかえめに円柱を作っておきます。色のパラメーターは毎回適当です。
//****************************************************************************** //Java3D Cylinder_test //Cylinderを表示 //****************************************************************************** //============================================================================== //インポート・ファイル import javax.media.j3d.*; import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.geometry.*; import javax.vecmath.*; import java.awt.*; import javax.swing.*; //============================================================================== //メイン・クラス public class Cylinder_test { //============================================================================= //メイン・メソッド public static void main(String[] args) { Cylinder_test test = new Cylinder_test(); } //============================================================================= //コンストラクタ public Cylinder_test() { //============================================================================ //まずは、基礎フレームの設定。 //============================================================================ JFrame frame = new JFrame(); frame.setSize(250,250); frame.setTitle("Cylinder_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.4f,1.4f,1.4f); 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); //============================================================================ //プリミティブの設定をして、SimpleUniverseに追加 //============================================================================ Appearance appearance = new Appearance(); Material material = new Material(); //DiffuseColorを設定します。引数は順に赤、緑、青です。今回はうすい黄色・・・。 material.setDiffuseColor(0.6f,0.6f,0.3f); appearance.setMaterial(material); BranchGroup group1 = new BranchGroup(); //縦長の円柱を生成します。 Cylinder cylinder = new Cylinder(0.2f,0.8f,appearance); group1.addChild(cylinder); universe.addBranchGraph(group1); } } //ソースコードここまで。 //******************************************************************************
この角度から見るとイマイチですが、一応、円柱ですね。なんかテカってますね。金色・・・。 ソースコードはCilynderを生成している以外、前と全く変わりません。