最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java3D實(shí)例之創(chuàng)建空間幾何模型的實(shí)現(xiàn)方法

 更新時(shí)間:2013年05月06日 16:50:46   作者:  
本篇文章是對(duì)Java3D 創(chuàng)建空間幾何模型的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的介紹。需要的朋友參考下

Java3D,算是比較古老的技術(shù),Java8Oracle對(duì)JavaFX支持了Java3D. 相關(guān)資料參照Oracle官網(wǎng) <JDK8目前還沒有正式發(fā)布 Early Access版本下載地址 http://jdk8.java.net>

環(huán)境搭建Java3D開發(fā)環(huán)境,JDK下載見Oracle官網(wǎng).安裝后在安裝目錄下的lib文件中找到Java3D驅(qū)動(dòng)包,添加的自己的項(xiàng)目中

Java3D實(shí)現(xiàn)簡(jiǎn)單幾何空間圖形說明:


實(shí)例應(yīng)用:創(chuàng)建3D直線

復(fù)制代碼 代碼如下:

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">發(fā)送郵件</a>
 *   
 *  @since   : 1.0      創(chuàng)建時(shí)間:    2013-5-6 下午02:57:47
 *    
 *  TODO     :
 *
 */
public class LineShape extends Shape3D{

    // 直線的定點(diǎn)坐標(biāo)
    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};
    // 各定點(diǎn)的顏色
    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( ) {
        // 創(chuàng)建直線數(shù)組對(duì)象
        LineArray line=new LineArray(6,LineArray.COORDINATES|LineArray.COLOR_3);
        // 設(shè)置直線對(duì)象的坐標(biāo)數(shù)組
        line.setCoordinates(0,vert);
        // 設(shè)置直線對(duì)象的顏色數(shù)組
        line.setColors(0,color);
        // 創(chuàng)建直線屬性對(duì)象
        LineAttributes linea=new LineAttributes( );
        // 設(shè)置線寬
        linea.setLineWidth(10.0f);
        // 設(shè)置直線的渲染效果
        linea.setLineAntialiasingEnable(true);

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

}


將3d直線放置到場(chǎng)景中
復(fù)制代碼 代碼如下:

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">發(fā)送郵件</a>
 *   
 *  @since   : 1.0      創(chuàng)建時(shí)間:    2013-5-6 下午02:50:08
 *    
 *  TODO     :
 *
 */
public class Line3DShape {

    public Line3DShape(){

        //構(gòu)建空間 和物體

        // 創(chuàng)建一個(gè)虛擬空間
        SimpleUniverse universe = new  SimpleUniverse();
        // 創(chuàng)建一個(gè)用來包含對(duì)象的數(shù)據(jù)結(jié)構(gòu)
        BranchGroup group = new BranchGroup();
        // 創(chuàng)建直線形狀對(duì)象把它加入到group中
        Shape3D shape=new LineShape();
        group.addChild(shape);

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

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


運(yùn)行效果:
 

其他形狀

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

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

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


實(shí)例應(yīng)用
:Java3D實(shí)現(xiàn)空間椎體

復(fù)制代碼 代碼如下:

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">發(fā)送郵件</a>
 *   
 *  @since   : 1.0      創(chuàng)建時(shí)間:    2013-5-6 下午02:50:08
 *    
 *  TODO     : Java3D 各種三維形狀展示
 *
 */
public class Java3DShape {

    public Java3DShape(){

        //構(gòu)建空間 和物體

        // 創(chuàng)建一個(gè)虛擬空間
        SimpleUniverse universe = new  SimpleUniverse();
        // 創(chuàng)建一個(gè)用來包含對(duì)象的數(shù)據(jù)結(jié)構(gòu)
        BranchGroup group = new BranchGroup();
        // 創(chuàng)建一個(gè)椎體并把它加入到group中
          Cone cone=new Cone(.5f,1.0f,1,null) ;    //錐體
        group.addChild(cone);

        //燈光構(gòu)造

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

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

效果圖:

實(shí)例應(yīng)用:Java3D實(shí)現(xiàn)空間球體

復(fù)制代碼 代碼如下:

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">發(fā)送郵件</a>
 *   
 *  @since   : 1.0      創(chuàng)建時(shí)間:    2013-5-6 下午02:50:08
 *    
 *  TODO     : Java3D 各種三維形狀展示
 *
 */
public class Java3DShape {

    public Java3DShape(){

        //構(gòu)建空間 和物體

        // 創(chuàng)建一個(gè)虛擬空間
        SimpleUniverse universe = new  SimpleUniverse();
        // 創(chuàng)建一個(gè)用來包含對(duì)象的數(shù)據(jù)結(jié)構(gòu)
        BranchGroup group = new BranchGroup();
        // 創(chuàng)建一個(gè)球并把它加入到group中
        Sphere sphere = new Sphere(0.5f);// 小球的半徑為0.5米
        group.addChild(sphere);

        //燈光構(gòu)造

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

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


效果圖:

實(shí)例應(yīng)用:Java3D實(shí)現(xiàn)空間圓柱體

復(fù)制代碼 代碼如下:

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">發(fā)送郵件</a>
 *   
 *  @since   : 1.0      創(chuàng)建時(shí)間:    2013-5-6 下午02:50:08
 *    
 *  TODO     : Java3D 各種三維形狀展示
 *
 */
public class Java3DShape {

    public Java3DShape(){

        //構(gòu)建空間 和物體

        // 創(chuàng)建一個(gè)虛擬空間
        SimpleUniverse universe = new  SimpleUniverse();
        // 創(chuàng)建一個(gè)用來包含對(duì)象的數(shù)據(jù)結(jié)構(gòu)
        BranchGroup group = new BranchGroup();
        // 創(chuàng)建一個(gè)圓柱形狀并把它加入到group中
        Cylinder cylinder=new Cylinder(.5f,1.0f); //圓柱型
        group.addChild(cylinder);

        //燈光構(gòu)造

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

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


效果圖:


相關(guān)文章

  • 在編程語言中怎樣定義隊(duì)列及其使用(C++)

    在編程語言中怎樣定義隊(duì)列及其使用(C++)

    這篇文章主要介紹了在編程語言中怎樣定義隊(duì)列,本文主要根據(jù)c++來介紹,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-03-03
  • C語言實(shí)現(xiàn)掃雷游戲詳解

    C語言實(shí)現(xiàn)掃雷游戲詳解

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • MFC Frame-Splitter模型實(shí)例原理解析

    MFC Frame-Splitter模型實(shí)例原理解析

    這篇文章主要介紹了MFC Frame-Splitter模型實(shí)例原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 淺談返回函數(shù)內(nèi)部new分配的內(nèi)存的引用

    淺談返回函數(shù)內(nèi)部new分配的內(nèi)存的引用

    下面小編就為大家?guī)硪黄獪\談返回函數(shù)內(nèi)部new分配的內(nèi)存的引用。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • Visual Studio Code配置C、C++環(huán)境并編寫運(yùn)行的方法

    Visual Studio Code配置C、C++環(huán)境并編寫運(yùn)行的方法

    這篇文章主要介紹了Visual Studio Code配置C、C++環(huán)境并編寫運(yùn)行的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • C++實(shí)現(xiàn)LeetCode(106.由中序和后序遍歷建立二叉樹)

    C++實(shí)現(xiàn)LeetCode(106.由中序和后序遍歷建立二叉樹)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(106.由中序和后序遍歷建立二叉樹),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++控制臺(tái)繪圖頭文件實(shí)例代碼

    C++控制臺(tái)繪圖頭文件實(shí)例代碼

    控制臺(tái)(console)是電腦的最基本交互接口,通常包括鍵盤(keyboard)和屏幕(screen),下面這篇文章主要給大家介紹了關(guān)于C++控制臺(tái)繪圖頭文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • 基于Qt開發(fā)一個(gè)簡(jiǎn)單的OFD閱讀器

    基于Qt開發(fā)一個(gè)簡(jiǎn)單的OFD閱讀器

    這篇文章主要為大家詳細(xì)介紹了如何使用Qt框架開發(fā)一個(gè)功能強(qiáng)大且性能優(yōu)異的OFD閱讀器,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下
    2025-01-01
  • Ubuntu 20.04 下安裝配置 VScode 的 C/C++ 開發(fā)環(huán)境(圖文教程)

    Ubuntu 20.04 下安裝配置 VScode 的 C/C++ 開發(fā)環(huán)境(圖文教程)

    這篇文章主要介紹了Ubuntu 20.04 下安裝配置 VScode 的 C/C++ 開發(fā)環(huán)境,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Visual?Studio?2022編譯C++20代碼

    Visual?Studio?2022編譯C++20代碼

    本文主要介紹了Visual?Studio?2022編譯C++20代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07

最新評(píng)論

北流市| 西充县| 宜兰县| 兰溪市| 横峰县| 昔阳县| 石首市| 金塔县| 灵璧县| 汝阳县| 梓潼县| 五台县| 鄂托克前旗| 台湾省| 浪卡子县| 嘉定区| 丰县| 丰台区| 城步| 云龙县| 会理县| 阳新县| 广饶县| 武邑县| 北海市| 印江| 获嘉县| 汝阳县| 老河口市| 新乐市| 横峰县| 冕宁县| 贵州省| 乾安县| 辽阳县| 安国市| 镇赉县| 东光县| 通渭县| 凌云县| 祁阳县|