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

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

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

    用Java3D寫了一個(gè)金字塔

    Java3D寫了一個(gè)金字塔

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

    然后寫入代碼:

    //1 引入我們要調(diào)用的包:

    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. 現(xiàn)在我們正式開動(dòng)了。先寫一個(gè)我們要展現(xiàn)的金字塔。

    public class TestPyramid extends Applet {

    Shape3D createPyramid() // 因?yàn)槲覀円獎(jiǎng)?chuàng)建的金字塔是Shape3D類型。

    {

     IndexedTriangleArray pyGeom =

       new IndexedTriangleArray(5, GeometryArray.COORDINATES

               | GeometryArray.COLOR_3

               , 18);

    // 這是用數(shù)組來創(chuàng)建一連串三角形的函數(shù)。其中5是我們創(chuàng)建模型所需的頂點(diǎn)數(shù)

    // GeometryArray.COORDINATES 是用坐標(biāo)點(diǎn)來構(gòu)建面。

    // 18 是來構(gòu)建這個(gè)金字塔所用到的索引點(diǎn)數(shù)。

    // 定義5個(gè)頂點(diǎn)

     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));

     

    // 構(gòu)建第一個(gè)三角形面。

     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. 創(chuàng)建視景根節(jié)點(diǎn)

    public BranchGroup createSceneGraph()

    {

     // 創(chuàng)建視景根節(jié)點(diǎn)

     

     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預(yù)先優(yōu)化

     objRoot.compile();

     return objRoot; 

    }         

    //4. 在初始化函數(shù)中配置Applet顯示

    public TestPyramid()

    {

     setLayout(new BorderLayout());

     GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();

     

     Canvas3D canvas3D = new Canvas3D(config);

     add("Center",canvas3D);

     

     BranchGroup scene = createSceneGraph();

     

     //SimpleUniverse 是一個(gè)方便的工具類

     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);

    }                

    }

    運(yùn)行結(jié)果如圖所示:

    prymid.jpg

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

    公告


    文章發(fā)布許可

    本站作品均采用知識(shí)共享署名-非
    商業(yè)性使用-禁止演繹 2.5 中國大
    陸許可協(xié)議
    進(jìn)行許可。

    Books I've Translated

    《精通Nginx(第二版)》

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

     云計(jì)算:原理與范式

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

    導(dǎo)航

    留言簿(2)

    隨筆分類

    搜索

    最新評(píng)論

    主站蜘蛛池模板: 亚洲日韩精品国产一区二区三区| 亚洲av无码一区二区三区四区| 亚洲av日韩av天堂影片精品| 亚洲国产成人AV网站| 久久精品网站免费观看| 精品韩国亚洲av无码不卡区 | 亚洲人色婷婷成人网站在线观看| 国产精品亚洲一区二区三区在线观看 | 一级一级毛片免费播放| 日本一区免费电影| a视频免费在线观看| www.亚洲成在线| 免费精品国偷自产在线在线| 污污视频网站免费观看| 亚洲精品无码AV中文字幕电影网站| 三年片在线观看免费观看大全一 | 在线jlzzjlzz免费播放| 亚洲欧美日韩中文字幕一区二区三区 | 亚洲激情电影在线| 国产亚洲?V无码?V男人的天堂 | h视频在线观看免费完整版| 日韩色日韩视频亚洲网站 | 特黄特色大片免费| 亚洲日韩乱码久久久久久| 91成年人免费视频| 四虎必出精品亚洲高清| 国产福利免费观看| 精品免费久久久久久久| 4hu四虎免费影院www| 亚洲女同成av人片在线观看| 大陆一级毛片免费视频观看| 99精品视频在线观看免费播放| 免费一级全黄少妇性色生活片| 亚洲三级高清免费| 777亚洲精品乱码久久久久久| 亚洲精品无码日韩国产不卡?V| 免费观看男人免费桶女人视频| 国产h视频在线观看网站免费| 国产一级片免费看| 亚洲伊人久久大香线蕉| 亚洲av无码一区二区三区乱子伦|