在编写
JAVA3D程序之前,我们需要了解一些概念,完成一些预备工作。
一. JAVA3D的数据结构
JAVA3D实际上是 JAVA语言在三维图形领域的扩展, JAVA3D的编程和 JAVA一样,是面向
对象的编程。
JAVA3D的数据结构采用的是Scene Graphs Structure(场景图),这一灵活的树状结
构与显示列表多少有些相似之处,但运用起来更耐用(More Robust)。 JAVA3D的场景图是
DAG(Directed-acyclic Graph),即具有方向性的不对称图形。
场景图中有许多线和线的交汇点,交汇点称为节点(Node),不管什么节点,它都是
JAVA3D类的实例(Instance of Class)线(Arc)表示实例之间的关系。
在 JAVA3D的场景图中,最底层(根部)的节点是Virtual Universe,每一个场景图只
能有一个Virtual Universe。
在Virtual Universe上面,就是Locale节点,每个程序可以有一个或多个Locale,但
同时只能有一个Locale处于显示状态,就好象一个三维世界非常大,有很多个景点,但我
们同时只能在一个景点进行观察。当然我们可以从一个景点跳到另一个景点,不过绝大多
数程序只有一个Locale。
每一个Locale上面拥有一个到多个BranchGroup节点。我们知道,要想建立我们的三维
应用环境,我们必须建立所需要的形体(Shape),给出形体的外观(Appearance)及几何
信息(Geometry),再把它们摆放在合适的位置,这些形体及其摆放位置都建立在Branch
Group节点之上,摆放位置通过另一个节点TransformGroup来设定。另外,我们在安放好三
维形体之后,还需要设定具体的观察位置,我们暂时用View Platform代替,它也是建立在
TransformGroup节点之上的。
下面我们用一个示意图来说明上面我们介绍的 JAVA3D的场景图概念。
Virtual Universe
|
|----------------------------------|
| |
Locale Locale
|
|
----------------+-----------------
| | | |
| | | |
BG BG BG BG (BG--BranchGroup)
| | | |
| | | | (S---Shape)
S TG TG TG (TG--TransformGroup)
----+--- | | |
| | | | |
A G S S View Platform
| |
一. JAVA3D的数据结构
JAVA3D实际上是 JAVA语言在三维图形领域的扩展, JAVA3D的编程和 JAVA一样,是面向
对象的编程。
JAVA3D的数据结构采用的是Scene Graphs Structure(场景图),这一灵活的树状结
构与显示列表多少有些相似之处,但运用起来更耐用(More Robust)。 JAVA3D的场景图是
DAG(Directed-acyclic Graph),即具有方向性的不对称图形。
场景图中有许多线和线的交汇点,交汇点称为节点(Node),不管什么节点,它都是
JAVA3D类的实例(Instance of Class)线(Arc)表示实例之间的关系。
在 JAVA3D的场景图中,最底层(根部)的节点是Virtual Universe,每一个场景图只
能有一个Virtual Universe。
在Virtual Universe上面,就是Locale节点,每个程序可以有一个或多个Locale,但
同时只能有一个Locale处于显示状态,就好象一个三维世界非常大,有很多个景点,但我
们同时只能在一个景点进行观察。当然我们可以从一个景点跳到另一个景点,不过绝大多
数程序只有一个Locale。
每一个Locale上面拥有一个到多个BranchGroup节点。我们知道,要想建立我们的三维
应用环境,我们必须建立所需要的形体(Shape),给出形体的外观(Appearance)及几何
信息(Geometry),再把它们摆放在合适的位置,这些形体及其摆放位置都建立在Branch
Group节点之上,摆放位置通过另一个节点TransformGroup来设定。另外,我们在安放好三
维形体之后,还需要设定具体的观察位置,我们暂时用View Platform代替,它也是建立在
TransformGroup节点之上的。
下面我们用一个示意图来说明上面我们介绍的 JAVA3D的场景图概念。
Virtual Universe
|
|----------------------------------|
| |
Locale Locale
|
|
----------------+-----------------
| | | |
| | | |
BG BG BG BG (BG--BranchGroup)
| | | |
| | | | (S---Shape)
S TG TG TG (TG--TransformGroup)
----+--- | | |
| | | | |
A G S S View Platform
| |