首页 百科知识 程序的组织和构建

程序的组织和构建

时间:2022-02-01 百科知识 版权反馈
【摘要】:Java3D完整程序由三个主要部分组成。此外,在Branch Group对象里还需放置与背景和灯光有关的对象。图7-11 Java3D的场景图结构内容分支的建造非常灵活,场景的不同主要是内容分支的差异。所有的Java3D应用程序的场景基准部分的构造方法是相同的或基本相同的。对于Appli-cation形式,其样本程序如下。
程序的组织和构建_地学三维可视化

Java3D完整程序由三个主要部分组成。

(1)内容分支部分:即为拥有三维物体、背景、声音和灯光内容的分支。所有的内容都摆放在一个Branch Group的对象里。一般情况下,三维形体要摆放在空间的某一位置,所以需要在Branch Group里面生成一个Transform Group对象用于坐标变换,此时要将形体、材质和相关的其他对象放在Transform Group对象中作为Transform Group对象的组成部分。此外,在Branch Group对象里还需放置与背景和灯光有关的对象。最后将内容分支中的内容组装在一起,形成场景类的一个方法。

图7-11 Java3D的场景图结构

内容分支的建造非常灵活,场景的不同主要是内容分支的差异。以下为一段生成场景的样本(可当作场景类的一个方法)。

public Branch Group create Scence Graph|//构建内容分支部分的方法

Branch Group obj Root=new Bremch Group();

Transform Group obj Trans=new Transform Group();

Bounding Sphere bounds=new Bounding Sphere(new Point3d(0.,0.,0.),100.);

Color3f bg Color=new Color3f(1.0f,1.0f,1.0f);

Backgroud bg=new Backgroud(bg Color);

Bg.set Application Bounds(bounds);//设定声音的有效范围

obj Root.add Child(bg);

Color3f directional Color=new Color3f(l.f,l.f,l.f);

Vector3f vec=new Vector3f(0.f,0.f,-l.f);

Directional Light directional Light=new Directional Light(Directional Color,vec);

directional Light.set Influencing Bounds(bounds);//设定灯光的有效范围

obj Root.add Child(directional Light);

Appearance app=new Appearance();//构造CORE的外表形态

Material material=new Material();

Material.set Emissive Color(new Color3f(l.f,0.f,0.f));

App.set Material(material);

Cone cone=new Cone(.5f,1.f,1,app);

Obj Trans.add Child(cone);

obj Root.add Child(obj Trans);

Obj Root.compile();

Return obj Root;

(2)场景基准部分:首先设置一个Border Layout,并将一个Canvas3D对象放置在Border-Layout的相应位置;然后利用Canvas3D对象生成一个Simple Universe对象,并利用Simple-Universe对象的Get Viewing Platform().set Nominal Viewing Transform()方法设置Simple-Universe对象的观察点;最后利用Simple Universe对象的add Branch Graph()方法,将(1)中方法生成的场景加入到Virtual Universe中。

所有的Java3D应用程序的场景基准部分的构造方法是相同的或基本相同的。以下为一段样本程序(可当作场景类的一个方法)。

public Simple Cone O{//构造场景基准部分的方法

set Layout(new Border Layout());

Canvas3D c=new Canvas3D(null);

add("Center",c);

Branch Group scene=create Scene Group();//调用(1)中方法生成场景内容Simple-Universe u=new Simple Universe(c);//创建Virtual Universe u.

get Viewing Platform().set Norainal Viewing Transform();//设置视点

u.add Branch Graph(scene);

(3)程序的启动部分:按照Java程序的结构,既可以将整个程序组成applet的形式,也可以将之组装成application的形式[此时需要main()函数],这根据应用需求而定。对于Appli-cation形式,其样本程序如下。

public static void main(String[]args){

new Main Frame(new Simple Cone(),400,300);

总之,将以上前两部分或三部分当作一个类的方法,再加上若干个import语句部分,即可构成一个完整的Java Applet程序或Java Application程序。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈