亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

Java3D實例之創建空間幾何模型的實現方法

2020-01-26 16:16:52
字體:
來源:轉載
供稿:網友

Java3D,算是比較古老的技術,Java8OracleJavaFX支持了Java3D. 相關資料參照Oracle官網 <JDK8目前還沒有正式發布 Early Access版本下載地址 http://jdk8.java.net>

環境搭建Java3D開發環境,JDK下載見Oracle官網.安裝后在安裝目錄下的lib文件中找到Java3D驅動包,添加的自己的項目中

Java3D實現簡單幾何空間圖形說明:


實例應用:創建3D直線

復制代碼 代碼如下:

package com.java3d.dennist.study;

import javax.media.j3d.Appearance;
import javax.media.j3d.LineArray;
import javax.media.j3d.LineAttributes;
import javax.media.j3d.Shape3D;

/**
 *
 *
 *  @version : 1.1
 * 
 *  @author  : 蘇若年         <a href="mailto:DennisIT@163.com">發送郵件</a>
 *   
 *  @since   : 1.0      創建時間:    2013-5-6 下午02:57:47
 *    
 *  TODO     :
 *
 */
public class LineShape extends Shape3D{

    // 直線的定點坐標
    private float vert[ ]={
.5f,0.5f,0.0f, -0.5f,0.5f,0.0f,
.3f,0.0f,0.0f, -0.3f,0.0f,0.0f,
                -0.5f,-0.5f,0.0f, 0.5f,-0.5f,0.0f};
    // 各定點的顏色
    private float color[ ]={
.0f,0.5f,1.0f,  0.0f,0.5f,1.0f,
.0f,0.8f,2.0f,  1.0f,0.0f,0.3f,
.0f,1.0f,0.3f,  0.3f,0.8f,0.0f};

    public LineShape( ) {
        // 創建直線數組對象
        LineArray line=new LineArray(6,LineArray.COORDINATES|LineArray.COLOR_3);
        // 設置直線對象的坐標數組
        line.setCoordinates(0,vert);
        // 設置直線對象的顏色數組
        line.setColors(0,color);
        // 創建直線屬性對象
        LineAttributes linea=new LineAttributes( );
        // 設置線寬
        linea.setLineWidth(10.0f);
        // 設置直線的渲染效果
        linea.setLineAntialiasingEnable(true);

        Appearance app=new Appearance( ); 
        app.setLineAttributes(linea);
        this.setGeometry(line);
        this.setAppearance(app);
    }

}


將3d直線放置到場景中
復制代碼 代碼如下:

package com.java3d.dennist.study;

import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.DirectionalLight;
import javax.media.j3d.Shape3D;
import javax.vecmath.Color3f;
import javax.vecmath.Point3d;
import javax.vecmath.Vector3f;

import com.sun.j3d.utils.universe.SimpleUniverse;

/**
 *
 *
 *  @version : 1.1
 * 
 *  @author  : 蘇若年         <a href="mailto:DennisIT@163.com">發送郵件</a>
 *   
 *  @since   : 1.0      創建時間:    2013-5-6 下午02:50:08
 *    
 *  TODO     :
 *
 */
public class Line3DShape {

    public Line3DShape(){

        //構建空間 和物體

        // 創建一個虛擬空間
        SimpleUniverse universe = new  SimpleUniverse();
        // 創建一個用來包含對象的數據結構
        BranchGroup group = new BranchGroup();
        // 創建直線形狀對象把它加入到group中
        Shape3D shape=new LineShape();
        group.addChild(shape);

        //燈光構造
        Color3f light1Color = new Color3f(1.8f, 0.1f, 0.1f);
        // 設置光線的顏色
        BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);
        // 設置光線的作用范圍
        Vector3f light1Direction  = new Vector3f(4.0f, -7.0f, -12.0f);
        // 設置光線的方向
        DirectionalLight light1= new DirectionalLight(light1Color, light1Direction);
          // 指定顏色和方向,產生單向光源
        light1.setInfluencingBounds(bounds);
        // 把光線的作用范圍加入光源中
        group.addChild(light1);
        // 將光源加入group組
        // 安放觀察點
        universe.getViewingPlatform().setNominalViewingTransform();
        // 把group加入到虛擬空間中
        universe.addBranchGraph(group);
    }

   
    public static void main(String[] args) {
        new Line3DShape();
    }
}


運行效果:
 

其他形狀

錐體Cone cone=new Cone(.5f,1.0f,1,app)   //app即外觀參數

球體Sphere sphere=new Sphere(.5f,app);   //app即外觀參數

圓柱體Cylinder cylinder=new Cylinder(.5f,1.0f);


實例應用
:Java3D實現空間椎體

復制代碼 代碼如下:

package com.java3d.dennist.study;

import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.DirectionalLight;
import javax.vecmath.Color3f;
import javax.vecmath.Point3d;
import javax.vecmath.Vector3f;

import com.sun.j3d.utils.geometry.Cone;
import com.sun.j3d.utils.universe.SimpleUniverse;

/**
 *
 *
 *  @version : 1.1
 * 
 *  @author  : 蘇若年         <a href="mailto:DennisIT@163.com">發送郵件</a>
 *   
 *  @since   : 1.0      創建時間:    2013-5-6 下午02:50:08
 *    
 *  TODO     : Java3D 各種三維形狀展示
 *
 */
public class Java3DShape {

    public Java3DShape(){

        //構建空間 和物體

        // 創建一個虛擬空間
        SimpleUniverse universe = new  SimpleUniverse();
        // 創建一個用來包含對象的數據結構
        BranchGroup group = new BranchGroup();
        // 創建一個椎體并把它加入到group中
          Cone cone=new Cone(.5f,1.0f,1,null) ;    //錐體
        group.addChild(cone);

        //燈光構造

        Color3f light1Color = new Color3f(1.8f, 0.1f, 0.1f);
        // 設置光線的顏色
        BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);
        // 設置光線的作用范圍
        Vector3f light1Direction  = new Vector3f(4.0f, -7.0f, -12.0f);
        // 設置光線的方向
        DirectionalLight light1= new DirectionalLight(light1Color, light1Direction);
          // 指定顏色和方向,產生單向光源
        light1.setInfluencingBounds(bounds);
        // 把光線的作用范圍加入光源中
        group.addChild(light1);
        // 將光源加入group組
        // 安放觀察點
        universe.getViewingPlatform().setNominalViewingTransform();
        // 把group加入到虛擬空間中
        universe.addBranchGraph(group);
    }

    public static void main(String[] args) {
        new Java3DShape();
    }
}

效果圖:

實例應用:Java3D實現空間球體

復制代碼 代碼如下:

package com.java3d.dennist.study;

import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.DirectionalLight;
import javax.vecmath.Color3f;
import javax.vecmath.Point3d;
import javax.vecmath.Vector3f;

import com.sun.j3d.utils.geometry.Sphere;
import com.sun.j3d.utils.universe.SimpleUniverse;

/**
 *
 *
 *  @version : 1.1
 * 
 *  @author  : 蘇若年         <a href="mailto:DennisIT@163.com">發送郵件</a>
 *   
 *  @since   : 1.0      創建時間:    2013-5-6 下午02:50:08
 *    
 *  TODO     : Java3D 各種三維形狀展示
 *
 */
public class Java3DShape {

    public Java3DShape(){

        //構建空間 和物體

        // 創建一個虛擬空間
        SimpleUniverse universe = new  SimpleUniverse();
        // 創建一個用來包含對象的數據結構
        BranchGroup group = new BranchGroup();
        // 創建一個球并把它加入到group中
        Sphere sphere = new Sphere(0.5f);// 小球的半徑為0.5米
        group.addChild(sphere);

        //燈光構造

        Color3f light1Color = new Color3f(1.8f, 0.1f, 0.1f);
        // 設置光線的顏色
        BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);
        // 設置光線的作用范圍
        Vector3f light1Direction  = new Vector3f(4.0f, -7.0f, -12.0f);
        // 設置光線的方向
        DirectionalLight light1= new DirectionalLight(light1Color, light1Direction);
          // 指定顏色和方向,產生單向光源
        light1.setInfluencingBounds(bounds);
        // 把光線的作用范圍加入光源中
        group.addChild(light1);
        // 將光源加入group組
        // 安放觀察點
        universe.getViewingPlatform().setNominalViewingTransform();
        // 把group加入到虛擬空間中
        universe.addBranchGraph(group);
    }

    public static void main(String[] args) {
        new Java3DShape();
    }
}


效果圖:

實例應用:Java3D實現空間圓柱體

復制代碼 代碼如下:

package com.java3d.dennist.study;

import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.DirectionalLight;
import javax.vecmath.Color3f;
import javax.vecmath.Point3d;
import javax.vecmath.Vector3f;

import com.sun.j3d.utils.geometry.Cylinder;
import com.sun.j3d.utils.universe.SimpleUniverse;

/**
 *
 *
 *  @version : 1.1
 * 
 *  @author  : 蘇若年         <a href="mailto:DennisIT@163.com">發送郵件</a>
 *   
 *  @since   : 1.0      創建時間:    2013-5-6 下午02:50:08
 *    
 *  TODO     : Java3D 各種三維形狀展示
 *
 */
public class Java3DShape {

    public Java3DShape(){

        //構建空間 和物體

        // 創建一個虛擬空間
        SimpleUniverse universe = new  SimpleUniverse();
        // 創建一個用來包含對象的數據結構
        BranchGroup group = new BranchGroup();
        // 創建一個圓柱形狀并把它加入到group中
        Cylinder cylinder=new Cylinder(.5f,1.0f); //圓柱型
        group.addChild(cylinder);

        //燈光構造

        Color3f light1Color = new Color3f(1.8f, 0.1f, 0.1f);
        // 設置光線的顏色
        BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);
        // 設置光線的作用范圍
        Vector3f light1Direction  = new Vector3f(4.0f, -7.0f, -12.0f);
        // 設置光線的方向
        DirectionalLight light1= new DirectionalLight(light1Color, light1Direction);
          // 指定顏色和方向,產生單向光源
        light1.setInfluencingBounds(bounds);
        // 把光線的作用范圍加入光源中
        group.addChild(light1);
        // 將光源加入group組
        // 安放觀察點
        universe.getViewingPlatform().setNominalViewingTransform();
        // 把group加入到虛擬空間中
        universe.addBranchGraph(group);
    }

    public static void main(String[] args) {
        new Java3DShape();
    }
}


效果圖:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久夜色精品国产| 亚洲综合av影视| 欧美激情一区二区三区高清视频| 午夜精品久久久久久久白皮肤| 欧美性受xxxx白人性爽| 欧美一级片久久久久久久| 日韩av在线电影网| 97在线视频免费| 97在线免费观看视频| 日韩在线视频网站| 国产成人高清激情视频在线观看| 欧美劲爆第一页| 夜夜狂射影院欧美极品| 91九色国产在线| 欧美怡春院一区二区三区| 国产成人精品视| 成人亚洲综合色就1024| 中国人与牲禽动交精品| 欧美中文字幕在线播放| 国产丝袜一区视频在线观看| 亚洲自拍偷拍色片视频| 国产午夜精品视频| 国产日韩综合一区二区性色av| 欧美电影免费播放| 欧美激情一区二区三区久久久| 久久久久久久久久久av| 国产精品色悠悠| 国产日韩欧美夫妻视频在线观看| 国产一区二中文字幕在线看| 国产精品jizz在线观看麻豆| 97av在线视频免费播放| 亚洲午夜性刺激影院| 少妇高潮久久77777| 久久国产精品电影| 国产精品久久久久高潮| 久久99久久99精品中文字幕| 国产成人精品视频| 2019国产精品自在线拍国产不卡| 在线播放国产一区中文字幕剧情欧美| 粉嫩老牛aⅴ一区二区三区| 国产在线视频欧美| 久久久亚洲欧洲日产国码aⅴ| 亚洲一区二区三区在线视频| 理论片在线不卡免费观看| 激情久久av一区av二区av三区| 一区二区三区视频免费| 亚洲免费高清视频| 久久99精品国产99久久6尤物| 高清一区二区三区日本久| 欧美激情一区二区三区在线视频观看| 美女久久久久久久| 国产精品久久久久久久久免费| 久久伊人91精品综合网站| 欧美性受xxxx黑人猛交| 青草青草久热精品视频在线网站| 欧美资源在线观看| 色婷婷久久av| 亚洲区中文字幕| 日韩av免费网站| 日韩精品有码在线观看| 狠狠躁18三区二区一区| 久久综合88中文色鬼| 日本国产一区二区三区| 亚洲精品视频二区| 日韩精品免费在线| 性日韩欧美在线视频| 国产成人精品久久二区二区91| 国产精品视频自拍| 尤物yw午夜国产精品视频明星| 欧美一区二区大胆人体摄影专业网站| 日韩在线视频播放| 热99精品里视频精品| 国产精品一区二区电影| 欧美成人免费网| 国产精品91久久久久久| 国产丝袜一区二区三区免费视频| 国产日韩欧美视频在线| 久久免费视频在线观看| 国产aⅴ夜夜欢一区二区三区| 色噜噜狠狠色综合网图区| 97免费中文视频在线观看| 欧美精品在线视频观看| 欧美成人剧情片在线观看| 国产美女精彩久久| 国产69精品久久久久9999| 国产亚洲精品美女久久久久| 日韩一级黄色av| 日韩精品久久久久久久玫瑰园| 97在线免费观看视频| 亚洲精品99久久久久中文字幕| 久久久免费在线观看| 精品二区三区线观看| 欧美极品美女电影一区| 欧美激情图片区| 日日骚久久av| 一区二区三区动漫| 亚洲福利影片在线| 国产亚洲成精品久久| 成人免费在线网址| 欧美成人亚洲成人日韩成人| 91在线观看免费高清完整版在线观看| 国产精品视频播放| 亚洲欧洲自拍偷拍| 大桥未久av一区二区三区| 国产精品扒开腿做爽爽爽男男| 欧美精品videos另类日本| 国产精品久久久久999| 国产精品爽爽爽爽爽爽在线观看| 日韩三级成人av网| 成人欧美在线视频| 欧美激情网站在线观看| 亚洲精品电影在线观看| 欧美成年人视频网站| 在线国产精品视频| 欧洲s码亚洲m码精品一区| 亚洲日本欧美日韩高观看| 欧美一区二区色| 88国产精品欧美一区二区三区| 欧美精品在线播放| 国产久一一精品| 欧美黑人性视频| 亚洲欧美综合另类中字| 久久久噜久噜久久综合| 亚洲成年网站在线观看| 精品香蕉一区二区三区| 中文字幕亚洲一区二区三区五十路| 日韩欧美亚洲成人| 91黑丝在线观看| 欧美一级淫片aaaaaaa视频| 亚洲精品福利资源站| 98精品在线视频| 亚洲高清不卡av| 欧美成人免费小视频| 日韩精品极品在线观看播放免费视频| 亚洲欧美色图片| 欧美国产日韩中文字幕在线| 性欧美在线看片a免费观看| 国产一级揄自揄精品视频| 国产精品一区二区性色av| 成人性生交xxxxx网站| 日本成人精品在线| 国产日韩一区在线| 亚洲精品免费av| 成人福利视频网| 亚洲精品综合精品自拍| 日韩中文字幕在线视频播放| 欧美小视频在线| 国产精品日韩欧美综合| 丝袜美腿精品国产二区| 国产日韩欧美在线看| 久久精品91久久久久久再现| 亚洲天堂第一页| 亚洲小视频在线观看| 精品毛片三在线观看| 欧美乱人伦中文字幕在线| 成人黄色片网站| 欧美激情视频一区二区三区不卡| 国产大片精品免费永久看nba| 2023亚洲男人天堂| 亚洲国产高清福利视频| 欧美性xxxxx极品| 亚洲欧美999| 国产一区玩具在线观看| 久久精品成人欧美大片|