BranchGroup 类

这种类型的对象是用于构建建场景图的, BranchGroup的实例是子图的根结点, BranchGroup对象也是唯一能成为Locale对象的孩子对象的对象。BranchGroup对象可以有多个孩子, BranchGroup对象的孩子对象可以是Group和Leaf对象。

BranchGroup 默认构造函数

BranchGroup()

BranchGroup的实例,作为场景图分支的根结点,BranchGroup 对象也是能唯一插入到Locale对象中的对象。

Canvas3D类

Canvas3D 类继承自Abstract Windowing Toolkit (AWT)类的Canvas类.在场景图的视图分支图中,至少要引用一个 Canvas3D对象(注:有可能存在多个Canvas3D对象,为了使演示简单,在使用SimpleUniverse类时,在程序中仅有 Canvas3D类的一个实例)。关于Canvas类更多的信息,请参考AWT。附录B中提供了一系列参考。

Canvas3D 类的构造函数

Canvas3D(GraphicsConfiguration graphicsconfiguration) 构造并初始化一个新的Canvas3D对象,Java 3D可以在给定的GraphicsConfiguration对象条件下渲染这个对象。这是 AWT Canvas类的扩展的类。关于GraphicsConfiguration 对象的更多信息请参考Java 2D规范。这也是JDK 1.2 AWT的一部分。

Transform3D 类

Transform3D 对象用于进行3D几何形变比于平移和旋转。这些对象一般仅仅用于创建一个TransformGroup对象。首先, Transform3D对象可能基于一些Transform3D对象的组合而创建,然後就用这个Transform3D来构建一个] TransformGroup对象。

Transform3D默认的构造函数

一个通常的变换对象就表示为一个4x4双精度浮点矩阵。 这种数学表示是以行为主的。一个Transform3D对象不是在场景图中用到的,而是用于指定TransformGroup对象的图形变换的。

Transform3D()

构造一个Transform3D 对象,默认使用单位矩阵 (不顾虑在变换)。

一个Transform3D对象能表示平移,旋转,缩放乃至这些变换的组合。当指定一个旋转变换时,角度用弧度来表示。一个全

旋转(圆)的弧度是2 PI。设置角度的一个方法是利用常量Math.PI,另外一种算途径是直接设置,这里说一下常用角度的

弧度:45度是0.785, 90度是1.57, 而180 度是3.14(约为PI)。

Transform3D 类的方法 (列出部分)

Transform3D对象用于表示几何形变,比如旋转,平移和缩放。 Transform3D是没在任何场景图中直接使用到的少数几个类之一。Transform3D对象所定义的变换是用于创建场景图中的 TransformGroup 对象的。

void rotX(double angle)

设置图形X轴方向沿逆时针对象按指定的角度旋转。角度值用弧度指定。

void rotY(double angle)

设置图形Y轴方向沿逆时针对象按指定的角度旋转。角度值用弧度指定。

void rotZ(double angle)

设置图形Z轴方向沿逆时针对象按指定的角度旋转。角度值用弧度指定。

void set(Vector3f translate)

利用传入的Vector3f型的参数设置图形的平移值,如果这个传入的形变是单位矩阵,则在其它时候设置真正的形变值。

TransformGroup 类

作为Group类的子类,TransformGroup类的实例用于创建场景图并且都其子结点的集合。TransformGroup对象存储了几何形变比如平移和旋转。一般利用不在场景图中的Transform3D对象来构造某一形变。TransformGroup对象保存了场景图中的形变信息。

ransformGroup 构造函数

TransformGroup()

利用单位矩阵来构造并且初始化一个TransformGroup对象。(不发生形变)

TransformGroup(Transform3D t1)

通过传入Transform3D对象参数来构造并且初始化一个TransformGroup 对象。

参数:

t1 - transform3D对象

Transform3D对象中所包含的形变信息在TransformGroup对象创建时或者是调用了setTransform()方法变复制到 TransformGroup中。

TransformGroup setTransform() 方法

void setTransform(Transform3D t1)

利用传入的形变参数设置TransformGroup对象的形变值。

参数:

t1 - 要复制的transform3D对象。

Vector3f 类

Vector3f 是包javax.vecmath中的数学类,用于用浮点数来设定一个矢量。Vector对象常常用于设置图形开变。

Vector3f对象也不直接在场景图中用到。常用于指定形变,表现,法向量以及一些其它的应用。

Vector3f 构造函数

一个三个元素的矢量。其三个元素用单精度浮点数表示X,Y,Z坐标。

Vector3f()

用(0,0,0)构造并初始化一个Vector3f。

Vector3f(float x, float y, float z)

指定x,y,z轴坐标来构造并初始经一个Vector3f。

ColorCube

ColorCube 是包com.sun.j3d.utils.geometry中的工具类。定义了一个立方体图形及其各面的不同的颜色,并使位置处

于初始位置的中间。默认的 ColorCube对象是一个长宽高均为2米的立方体。如果一个处于原始位置未经旋转的立方体(如

HelloJava3Da示例中的),在名义上的视图位置中,红色面是可见的,其它面的颜色分别是:蓝色, 洋红,黄色,绿色和

青色。

ColorCube 构造函数

包: com.sun.j3d.utils.geometry

一个ColorCube 是一个简单的各面均有不同颜色的可视的立方体。

ColorCube 扩展了Shape3D 类;因此,它是叶子结点。 ColorCube可以很容易地放置于虚拟世界中。

ColorCube()

以默认的大小构造一个有色立方体。默认地,每一个角到相应坐标的中心都是1米,因而,此立方体处于视图正中心,长宽高

都是2米。

ColorCube(double scale)

构造一个有色立方体,并作指定参数的缩放。默认每一条边都是2米,而此构造函数则构造一个顶点在(scale, scale,

scale) 和(-scale, -scale, -scale)的ColorCube。

VirtualUniverse, Locale, Group, 和 Leaf 类处于类层次中的这部分。除了VirtualUniverse 和Locale对象,场景图中馀下的部分由SceneGraphObject 对象构成。SceneGraphObject 几乎是Java3D类中每一个核心类和工具类的超类 [译者注:超类即上层类,可以是父类或者祖先类]。

SceneGraphObject 有两个子类: Node 类NodeComponent.类,Node子类提供了场景图中的绝大部分对象,一个Node对象可以是一个Group,也可是一个Leaf结点对象。

Group 和Leaf是一系列类的超类。这里可以一目了然地看到Node类的子类,它有两个子类,而 NodeComponent 类,在这些背景知识介绍之後,在Java3D程序的构建中会解释到。

Node 类

Node是Group和Leaf类的一个抽象超类. Node 为其子类定义了一些公共的重要的方法。某些方法的信息会在更多的背景知识介绍了之後提到。Node 的子类构成了子图。

Group 类

Group 类是用于在虚拟世界中指定可视对象位置和方向的类的超类。Group类的两个下层类是 BranchGroup是 TransformGroup. 在场景图的图形表现中,Group标记 (用圆表示)。而其中BranchGroups注为GB, TransformGroups 注为TG,等等。具体例子请见图1-2。

Leaf 类

Leaf是用于指定虚拟世界中可视对象的形状,声音和,动作的类的超类。Leaf的一些子类如Shape3D, Light, Behavior, 和 Sound. 这些对象不能有自己的孩子,并且可能引用NodeComponents对象。

NodeComponent 类

NodeComponent 类

是用于指定Shape3D (Leaf)结点对象的图形,表面,纹理和材质属性的类的超类。NodeComponents 不是场景图的组成部分,但是为其所引用。一个NodeComponent 对象可能为多个Shape3D对象所引用(译者注:就是比如,同一个材质对象可以赋予多个shape3D对象)。

java3D类简单说明相关推荐

  1. java9String类简单了解

    public class jh_01_String类简单了解 {public static void main(String[] args) {/** 函数:完成特定功能的代码块.* nextInt( ...

  2. php数值操作,php数值计算num类简单操作示例

    php数值计算num类简单操作示例,在线,计算器,小数,整数,程序设计 php数值计算num类简单操作示例 易采站长站,站长之家为您整理了php数值计算num类简单操作示例的相关内容. 本文实例讲述了 ...

  3. java 大数实现_Java中的大数类简单实现

    Java中的大数类简单实现 Java中的大数还是挺好用,而且很方便,所以将其罗列如下,以备使用 import java.math.*; import java.util.*; //基本使用如下: x ...

  4. SimpleDateFormat类(简单日期格式类)

    SimpleDateFormat类(简单日期格式类) 它是一个具体的类(相应的最底层类),用于以区域设置铭感的方式格式化和解析日期.重点学习日期格式化和解析 日期和时间格式由日期和时间模拟字符串指定, ...

  5. Android APP更新下载工具类——简单封装DownloadManager

    几乎所有APP都包含了检查更新功能,更新下载功能的实现方式常用的有两种:1.使用App网络框架的文件下载请求:2.使用自带的DownloadManager类:本文介绍第二种,简单封装一下Downloa ...

  6. ThinkPHP 数据库表结构处理类(简单实用)

    <?php /* *mysql表结构处理类 *创建数据表,增加,编辑,删除表中字段 * */ classMysqlManage{ /* *创建数据库,并且主键是aid *table要查询的表名 ...

  7. php注入类,简单实用的PHP防注入类实例

    这篇文章主要介绍了简单实用的PHP防注入类实例,以两个简单的防注入类为例介绍了PHP防注入的原理与技巧,对网站安全建设来说非常具有实用价值,需要的朋友可以参考下 本文实例讲述了简单实用的PHP防注入类 ...

  8. Activity、Fragment、Dialog基类简单整理

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 这里简单记录下Activity.Fragment.Dialog基类中的常规写法,后续根据项目需求进行相应的扩展. BaseActiv ...

  9. php 高效缓存类,简单高效的文件缓存php类

    简单高效的文件缓存php类 class FileCache { public $keyPrefix = ''; public $cachePath = ''; public $cacheFileSuf ...

最新文章

  1. 打造计数君!谷歌提出RepNet:可自动计数视频重复片段 | CVPR 2020
  2. 为什么项目经理很难有节操的选举
  3. Xcode中release和debug模式
  4. FileOutputSteam入门
  5. IntelliJ IDEA关于logger的live template配置
  6. 好友消息和群消息区别
  7. 【Es】Es 集群设置分片很大导致集群无法选举主节点异常等
  8. pacbio 原始下机数据h5 文件简介
  9. 【MyBatis笔记】01-MyBatis入门程序
  10. c语言中ftell函数是什么
  11. 发电厂计算机监控课,那比水利发电厂监控系统课件.ppt
  12. java flush是什么意思,java – JPA中flush的确切目的是什么
  13. 社会化分享(附源码)
  14. vue 运行启动命令_如何使用Vue启动和运行
  15. Andriod Studio下载安装教程
  16. 判断一颗二叉树是否对称
  17. 郑州龙发装饰公司告诉您:装修为什么要选择装
  18. 基于模板的云服务视频自动生成解决方案
  19. centos下rabbitmq启动失败:
  20. 整理大厂高频核心前端面试题,五万多字,面试必考

热门文章

  1. table 固定表格宽度,设置列宽,超出内容省略号显示
  2. 股市大盘走势图是怎么去看
  3. 拉起微信三方登录,详细实现步骤
  4. ICEM-extrude功能画圆柱绕流网格【转载】
  5. 最意想不到的5个APP UI 设计范例
  6. CVPR2019----论文汲取
  7. 装箱问题--C++实现
  8. 从壹开始前后端分离【 .NET Core2.2 +Vue2.0 】框架之九 || 依赖注入IoC学习 + AOP界面编程初探...
  9. Office 365系列(三) -Office 365 Pro plus 安装
  10. BusyBox的安装与使用