J2ME 上任意多边形填充算法.doc
《J2ME 上任意多边形填充算法.doc》由会员分享,可在线阅读,更多相关《J2ME 上任意多边形填充算法.doc(5页珍藏版)》请在三一文库上搜索。
1、精品论文推荐J2ME 上任意多边形填充算法刘胜云 1,杨俊 1,董洪毅 21 北京邮电大学计算机科学技术系,北京 (100876)2 山东省科学院激光研究所,济南 (272017)E-mail: 摘要:本论文主要对 J2me 平台进行介绍,简要的介绍了 J2me 的体系结构,提出了此多边形填充算法的应用环境,在此基础上详细的介绍此填充算法,从理论和实现 2 层上分析此 算法的优缺点,并在算法的缺点之上提出一个修正的方案,最终实现一个基于 J2me 规范的任意多边形填充之扫描线填充算法,来实现对 J2me 上图形图像的渲染,并加入对曲线多边 形填充的一些补充说明,并就此算法在基于 J2me 平台
2、的手机上运行,给出其运行结果和结果分析,并证明了此算法在 J2me 平台上的可行性。 关键字:J2me;像素;扫描线中图分类号:TP311.11. 引言J2me 作为嵌入式系统应用平台得到了迅速的发展,JAVA 语言固有的平台无关性使得基 于 J2me 平台的嵌入式应用系统具有广阔的前景1。随着手机为主的移动手持设备的增加, 手持设备上的应用开发需求稳步上升。J2me 作为手持设备的主流开发平台之一,是实现手 持设备各种综合应用的一个重要途径。手持设备上图形图像的处理是各种应用中最基本应用 之一,所以对 J2me 上多边形填充算法的研究日益重要。本文就 J2ME 上任意多边形填充算 法之扫描线
3、填充做简单分析和介绍。2. j2ME 介绍J2me(Java 2 Platform Micro Edition)是为无线电子市场所设计的 JAVA 平台,包括 JVM 规范和 API 规范2。J2me 定义了一套类库和虚拟机技术,这些技术可以使用户、服务提供 商和设备制造商通过物理(有线)连接或无线连接,按照需要随时使用丰富的应用程序。J2me 同时提供了 Java 语言一贯的跨平台性和安全性。为了支持用户和嵌入式市场提出的灵活性和可定制性要求,J2ME 被设计得更加模块化 和可缩放化。J2me 在设备原有的操作系统上建造了 3 层软件来实现这种要求:JVM 层:这层基于宿主操作系统,按照某一
4、种 J2ME 的配置实现了 JVM。 配置层:这层对于用户可见度要低一些,但对简表层非常重要。它针对不同市场的需求,定义了 Java 虚拟机的最小功能集合和 Java 类库的最小集合。在 J2ME 设备中,JVM 与配置 层紧密相连,它们体现了每一类设备的基本功能。简表层:这层对于用户和应用程序提供者来说是最常见的。它针对特定市场的需求,定 义了 Java 虚拟机的最小功能集合和 Java 类库的最小集合。J2ME 组件都围绕一个中心,这些中心被称为 configuration(配置),它们中间的每一个都是用于消费电子和嵌入设备的特别的类。目前配置分为 CLDC 和 CDC 两种。Connec
5、ted limited device configuration( 有限连接设备配置,简称 CLDC) 定义支持 “devices that you hold in your hand(握在手中的设备)”的应用程序接口和技术,这类设备的 代表是 PDA。Connected device configuration(连接设备配置 CDC )定义支持“devices that you plug into plug into the wall(插入墙的设备)”的应用程序接口和技术,这类设备的代表是机- 5 -顶盒。这两种配置不同的地方就在于它们应用于的装置的能力,CLDC 设备的处理器能力有限 (与
6、台式机系统比较 ),并且存储器大小一般也只在 128 KB 到 512 KB 之间。CDC 系统不同, 它可能有 32 位或 64 位处理器,以及有限的存储容量,不过它的下限也得超过 512K。图 1 配置和简表的体系结构上图解释配置和简表的体系结构。J2me 的体系结构被横向地分成三层,纵向分成两部 分。配置包括一个控制配置核心类的虚拟机,具体的简表位于每个配置之上3。3. 多边形扫描线填充算法3.1 理论分析MIDP2.0 中 Graphics 提供的图形填充算法支持的有圆弧,三角形,长方形和圆角长方 形,任意多边形可以分解为多个三角形进行填充,这里介绍另一种填充算法,通过扫描线进 行多边
7、形填充。如下图所示。图 2 扫描线填充基于 J2me 平台 MIDP2.0 只支持对整数级像素填充,而且手持设备的屏幕较小,因此基 于 Y 轴或 X 轴的扫描线数目有限,从而在处理能力和内存有限的手持设备上使得扫描线算 法成为可能。首先计算出此多边形在 X 轴或 Y 轴的最大值 a 和最小值 b,并新建(a-b+1)个整形数 组来保存相交的点,然后用多边形的边去切扫描线,在对应交点值的数组中保存交点的 X 值或 Y 值。最终按照扫描线填充算法的基本原理,奇数的交点为进入此多边形,偶数的交 点为离开此多边形,调用 Graphics 的 drawLine 方法进行绘制。3.2 算法分析优点:简单实
8、用,对于边数不多,面积不是很大的任意多边形来说,算法的时间和空间 复杂度是可以接受的缺点:效率不高是主要问题,同时多边形中存在奇异点的情况,存在和扫描线重叠的 情况,因而需要加入特殊处理。特殊情况:1)多边形有凸多边形和凹多边形,对于凸多边形过极值点时满足奇数点进入多边形, 偶数点离开多边形,凹多边形则相反,因而此为一相异情况,如图 2 中的 c 和 d 扫描线。2) 多边形的顶点为一特殊情况,有极值点和非极值点,极值点时既为多边形进入点,又是多边 形离开点,非极值点则相反,如图 2 中的 a 和 d 扫描线。3)采用 X 轴或 Y 轴扫描线填充存 在边与 X 轴或 Y 轴重叠的情况,如图 2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- J2ME 上任意多边形填充算法 任意 多边形 填充 算法
链接地址:https://www.31doc.com/p-3617873.html