首页 | 博客群 | 公社 | 专栏 | 论坛 | 图片 | 资讯 | 注册 | 帮助 | 博客联播 | 随机访问
MySQL和SQLite数据访问的初步比较[原创]- -| 回首页 | 2005年索引 | - -Java 3D API官方教程:2.5.3节续(翻译)

Java 3D API官方教程:2.5.3 GeometryStripArray类的子类[翻译]

关键词Java    3D    API    GeometryStripAr                                          

2.5.3 GeometryStripArray类的子类

上面所述GeometryArray的四个子类不允许重用顶点。一些图形的设置导致了对顶点的重用,所以就产生了追求更好渲染性能的特殊的类。GeometryStripArray类就是让带状基本类(用于构造复合线和面) 的抽象类。GeometryStripArray类是LineStripArrayTriangleStripArray以及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】【注册】【打印

搜索

Google

Trackback

你可以使用这个链接引用该篇文章 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,希望能和你保持联系。
我的QQ是:87719230

- 评论人:wuxingblog   2005-10-19 21:40:12   wuxingblog的博客  

可以的,用Text2D类
Shape3D text2D=new Text2D("String",new Color3f(1f,1f,0f),"宋体",100,Font.BOLD);
然后就可以加到场景图中了

- 评论人:xxp   2005-10-19 11:34:49   

请问一下如果在3D中加入一个二维的字可以吗?

- 评论人:wuxingblog   2005-10-05 16:43:27   wuxingblog的博客  

多谢关注,呵呵,我也是新手,只不过觉得国内资料太少,就翻译一下,还没翻译完呢,最近公司加班多,又加上国内回老家了.今天刚回来..说不上请教.咱们多多交流.

- 评论人:todee   2005-09-27 11:47:08   

你好!:)我也在学习JAVA3D,希望能和你保持联系。我的QQ是:8668321。还有些问题想请教你,不知道你什么时候有空,谢谢!:)

验证码:   
评论内容: