博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

点、线、面的生成(一)——Geometry的介绍

Posted on 2009-06-26 15:48  Anna Yang  阅读(1587)  评论(0编辑  收藏  举报

点、线、面的生成需要的条件“

1.需要给出顶点坐标数组及顶点坐标对应的颜色数组

2.点、线、面是GeometryArray的子类或孙类,因而继承了它所有的方法。

3.由于Geometry的对象都是几何对象,不能单独放在三维场景图里面,因为只有三维形体才能显示出三维的效果,只有点,线,面的对象是看不出三维效果的。必须将点、线、面等几何对象赋予shape3D这样(Leaf类的子类)的几何形体,才可以在三维场景中显示。像Cone.Box,Cylinder,Sphere等对象已经属于形体,所以他们可以直接用在三维场景中。

下面介绍Geometry及其父类和子类的关系

 

 

GeometryArray的构造方法:

GeometryArray(int vertexCount, int vertexFormat);

vertexCount:顶点数组里的个数                  

vertexFormat可以为:

COORDINATES        顶点坐标数组                            COLOR_3    不带Alpha值的颜色数组     //此两个经常用到

COLOR_4               带Alpha值的颜色数组                  NORMALS    顶点法向数组

Texture_Coordinate_2  二维纹理坐标数组                  Texture_Coordinate_3  三维纹理坐标数组

使用这些时,前面都要加上具体的类名和”.“

Geometry的常用方法有:

setCoordinate(int index,float coordinate[]) ;                setColor(int index, float color[])  //index为索引开始下标,一般为0

setTextureCoordinate(int index, Point2f textcoord) //此方法很少用到

上述三种方法都有对应的Get方法。其内参数相同,此处就不再一一写出来了

 另外,对后面程序中要用到的Bounds做一些简单的介绍:

在Java3D程序里,经常需要设置一些灯光、声音、行为等对象,这些对象在使用时,必须给出他们的作用范围,物体才能够正常显示。