点、线、面的生成需要的条件“
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程序里,经常需要设置一些灯光、声音、行为等对象,这些对象在使用时,必须给出他们的作用范围,物体才能够正常显示。