<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    用Java3D寫了一個金字塔

    Java3D寫了一個金字塔

    打開eclipose3.1,進入界面。點擊File->new->class彈出對話框,寫好你要建立的類文件名TestPyramid

    然后寫入代碼:

    //1 引入我們要調用的包:

    import java.applet.Applet; import java.awt.BorderLayout; import java.awt.Frame; import java.awt.GraphicsConfiguration;

    import com.sun.j3d.utils.applet.MainFrame; import com.sun.j3d.utils.geometry.ColorCube; import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.behaviors.mouse.*; import javax.media.j3d.*; import javax.vecmath.*;

    import java.awt.event.*; import java.util.Enumeration;

    //2. 現在我們正式開動了。先寫一個我們要展現的金字塔。

    public class TestPyramid extends Applet {

    Shape3D createPyramid() // 因為我們要創建的金字塔是Shape3D類型。

    {

     IndexedTriangleArray pyGeom =

       new IndexedTriangleArray(5, GeometryArray.COORDINATES

               | GeometryArray.COLOR_3

               , 18);

    // 這是用數組來創建一連串三角形的函數。其中5是我們創建模型所需的頂點數

    // GeometryArray.COORDINATES 是用坐標點來構建面。

    // 18 是來構建這個金字塔所用到的索引點數。

    // 定義5個頂點

     pyGeom.setCoordinate(0,new Point3f(  0.0f,  0.7f,  0.0f));

     pyGeom.setCoordinate(1,new Point3f( -0.4f,  0.0f, -0.4f));

     pyGeom.setCoordinate(2,new Point3f( -0.4f, 0.0f,  0.4f));

     pyGeom.setCoordinate(3,new Point3f(  0.4f,  0.0f,  0.4f));

     pyGeom.setCoordinate(4,new Point3f(  0.4f,  0.0f, -0.4f));

     

    // 構建第一個三角形面。

     pyGeom.setCoordinateIndex(0,0);

     pyGeom.setCoordinateIndex(1,1);

     pyGeom.setCoordinateIndex(2,2);

     

     pyGeom.setCoordinateIndex(3,0);

     pyGeom.setCoordinateIndex(4,2);

     pyGeom.setCoordinateIndex(5,3);

     

     pyGeom.setCoordinateIndex(6,0);

     pyGeom.setCoordinateIndex(7,3);

     pyGeom.setCoordinateIndex(8,4);

     

     pyGeom.setCoordinateIndex(9,0);

     pyGeom.setCoordinateIndex(10,4);

     pyGeom.setCoordinateIndex(11,1);

     

     pyGeom.setCoordinateIndex(12,1);

     pyGeom.setCoordinateIndex(13,4);

     pyGeom.setCoordinateIndex(14,2);

     

     pyGeom.setCoordinateIndex(15,4);

     pyGeom.setCoordinateIndex(16,3);

     pyGeom.setCoordinateIndex(17,2);

     

     Color3f c = new Color3f(0.6f,0.5f,0.55f);

     pyGeom.setColor(0,c);

     pyGeom.setColor(1,c);

     pyGeom.setColor(2,c);

     pyGeom.setColor(3,c);

     pyGeom.setColor(4,c);

     

     Shape3D pyramid = new Shape3D(pyGeom);

     return pyramid;

    }   

    //3. 創建視景根節點

    public BranchGroup createSceneGraph()

    {

     // 創建視景根節點

     

     BranchGroup objRoot = new BranchGroup();

     TransformGroup objRotate = new TransformGroup();

     objRotate.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);

     objRotate.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);

     

     objRoot.addChild(objRotate);

     objRotate.addChild(createPyramid());

     

     MouseRotate myMouseRotate = new MouseRotate();

     myMouseRotate.setTransformGroup(objRotate);

     myMouseRotate.setSchedulingBounds(new BoundingSphere());

     objRoot.addChild(myMouseRotate);

     

     // Java3D預先優化

     objRoot.compile();

     return objRoot; 

    }         

    //4. 在初始化函數中配置Applet顯示

    public TestPyramid()

    {

     setLayout(new BorderLayout());

     GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();

     

     Canvas3D canvas3D = new Canvas3D(config);

     add("Center",canvas3D);

     

     BranchGroup scene = createSceneGraph();

     

     //SimpleUniverse 是一個方便的工具類

     SimpleUniverse simpleU = new SimpleUniverse(canvas3D);

     simpleU.getViewingPlatform().setNominalViewingTransform();

     

     simpleU.addBranchGraph(scene);

    }      

    //5. 最后。

    public static void main(String[] args)

    {

     Frame frame = new MainFrame(new TestPyramid(),256,256);

    }                

    }

    運行結果如圖所示:

    prymid.jpg

    posted on 2006-07-10 22:27 XiaoLi 閱讀(1194) 評論(0)  編輯  收藏 所屬分類: Java

    公告


    文章發布許可

    本站作品均采用知識共享署名-非
    商業性使用-禁止演繹 2.5 中國大
    陸許可協議
    進行許可。

    Books I've Translated

    《精通Nginx(第二版)》

    精通Nginx(第二版)
    《云計算:原理與范式》

     云計算:原理與范式

    《SQL技術手冊(第三版)》
    SQL技術手冊(第三版)
    《MySQL核心技術手冊(第二版)》
    MySQL核心技術手冊(第2版)
    《RESTful Web Services中文版》
    RESTful Web Services中文版

    導航

    留言簿(2)

    隨筆分類

    搜索

    最新評論

    主站蜘蛛池模板: 久久久久免费看成人影片| 成人五级毛片免费播放| 久久久久亚洲av无码专区导航| 免费毛片a在线观看67194| 色窝窝亚洲av网| 久久精品亚洲综合一品| 久久久久久久久免费看无码 | 国产精品自拍亚洲| 亚洲美女又黄又爽在线观看| 在免费jizzjizz在线播| 美女无遮挡免费视频网站| 亚洲欧洲国产日韩精品| 日本免费一二区在线电影| 一级毛片免费观看| 免费无码又爽又黄又刺激网站| 亚洲avav天堂av在线不卡| 国产一级淫片免费播放| 精品熟女少妇a∨免费久久| 日本激情猛烈在线看免费观看 | 久久午夜夜伦鲁鲁片无码免费| 亚洲色大成网站www| 国产亚洲精品观看91在线| 在线播放免费播放av片| 免费萌白酱国产一区二区三区 | 亚洲人成影院在线观看 | 亚洲国产精品人久久| 高清国语自产拍免费视频国产 | 亚洲精品无码av片| 中文字幕亚洲精品资源网| 亚洲国产精品嫩草影院久久| 无码免费午夜福利片在线| 黄网站免费在线观看| 一级女性全黄久久生活片免费| 亚洲国产区男人本色在线观看| 亚洲成在人天堂在线| 国产亚洲人成A在线V网站 | 夜夜春亚洲嫩草影院| 在线观看免费大黄网站| 亚洲一级毛片免费观看| 免费看搞黄视频网站| 中文字幕免费观看全部电影|