上面所述GeometryArray的四个子类不允许重用顶点。一些图形的设置导致了对顶点的重用,所以就产生了追求更好渲染性能的特殊的类。GeometryStripArray类就是让带状基本类(用于构造复合线和面) 的抽象类。GeometryStripArray类是LineStripArray、TriangleStripArray以及TriangleFanArray的超类.图2-14显示了这每一个类的实例,并说明了顶点是如何被重用的。LineStripArray用于渲染连接线。TriangleStripArray是从重用一条边和重用最近渲染的顶点的三角形中产生的。TriangleFanArray类则重用每一个三角形带的第一个顶点.
GeometryStripArray有一个与GeometryArray类不一样的构造函数. GeometryStripArray的构造函数有三个参数,第三个参数是每一个带的顶点数组的元素数,这可以使得一个对象就可以维护多个带. (GeometryStripArray 类也引入了一对查询方法, getNumStrips()和 getStripVertexCounts(),这是很常用到的)
GeometryStripArray 子类的构造函数
用指定数目的顶点,顶点格式和一个指定每个带的顶点数数组来构造一个空对象.格式是一个或多个单个标志用”或”相连的组成的,来描述每一个顶点的数据.这个格式标志跟GeoemtryArray超类中定义的相同.支持多个带.对所有带(来自stripVertexCounts数组)的所有顶点的数目之和必须与所有顶点(vtxCount)的总数相等(vtxCount).
LineStripArray(int vtxCount, int vertexFormat, int stripVertexCounts[])
TriangleStripArray(int vtxCount, int vertexFormat, int stripVertexCounts[])
TriangleFanArray(int vtxCount, int vertexFormat, int stripVertexCounts[])
注意到Java 3D不支持多于四条边的填充的基本图形.程序员必须用小单元来将复杂的多边形分解成为Java3D对象.比如三角形带和扇形.工具类Triangulator可以将复杂的多边形转换成为三角形.[ 注: Triangulator类和相关的类在第3章中会有更详细的介绍.]
Triangulator类
所在包: com.sun.j3d.utils.geometry
用于将非三角多边形图形转换成为多个三角形,以便于Java 3D的渲染.多边形可以是凹入的,非平面的,可以包含空洞的. (请参考GeometryInfo.setContourCounts()).非平面的多边形则投影到其最近的平面上.注意: 请查看当前的类文档以明细限制.请查看本教程的3.3节以了解更多信息.
Triangulator构造函数概要
Triangulator()
构造一个Triangulator对象
Triangulator 方法概要
void triangulate(GeometryInfo ginfo)
这个方法用多边形分解技术参数将来自基本类型POLYGON_ARRAY 的GeometryInfo对象转换成为基本类型 TRIANGLE_ARRAY.
ginfo – 要三角化的com.sun.j3d.utils.geometry.GeometryInfo
用法示例:
Triangulator tr = new Triangulator();
tr.triangulate(ginfo); // ginfo 包含了图形
shape.setGeometry(ginfo.getGeometryArray()); // shape 是一个 Shape3D对象
Yo-yo 代码演示TriangleFanArray类
【作者: wuxingblog】【访问统计:】【2005年08月26日 星期五 23:31】【注册】【打印】
你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=2718146
| Java 3D API:2.5.2 GeometryArray的子类[翻译] |
| Java 3D API官方教程:2.5.1节续 |
| 全面挖掘Java Excel API 使用方法 |
| 3D programmer requrements |
| Oracle Olap开发备忘录 |
|
- 评论人:000maiker
2008-10-04 04:21:05
|
|||
我也在学习JAVA3D,希望能和你保持联系。
|
||||
|
- 评论人:wuxingblog
2005-10-19 21:40:12
|
|||
可以的,用Text2D类
|
||||
|
- 评论人:xxp
2005-10-19 11:34:49
|
|||
请问一下如果在3D中加入一个二维的字可以吗? |
||||
|
- 评论人:wuxingblog
2005-10-05 16:43:27
|
|||
多谢关注,呵呵,我也是新手,只不过觉得国内资料太少,就翻译一下,还没翻译完呢,最近公司加班多,又加上国内回老家了.今天刚回来..说不上请教.咱们多多交流. |
||||
|
- 评论人:todee
2005-09-27 11:47:08
|
|||
你好!:)我也在学习JAVA3D,希望能和你保持联系。我的QQ是:8668321。还有些问题想请教你,不知道你什么时候有空,谢谢!:) |
||||