- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机图形学论文:计算机图形学中二维裁剪算法的研究
摘要:随着计算机技术的发展,计算机图形学也日益成熟。在我们的日常生活中,也成了随处可见的必需部分。在医学、娱乐、图形艺术、商业、教育培训、科学工程等众多领域,计算机图形学的应用非常普遍。
计算机图形学主要研究的是在计算机中构造图形,将用数学模型描述的图形数据采用合适的算法转换为屏幕上图形的显示。计算机图形学学科研究的对象为二维图形学和三维图形学及其显示和变化情况。点、线、面为二维图形学范畴,几何体和场等数学构造方法则为三维图形学范畴。
现在,计算机图形学的一些基本算法已经形成了固化在硬件中的规范软件包,这个学科也日趋成熟和完善。但是依然有很多算法还需要不断的改进才能应用到实际中,而裁剪算法就是其中之一。本文主要对二维图形裁剪中的椭圆形窗口裁剪算法进行了研究,使其具有较高的效率和稳定性。
关键词:计算机图形学 裁剪算法 椭圆形窗口线裁剪算法
1 裁剪概述
裁剪算法,简称裁剪,是计算机图形学中很多重要问题的基础,它就是从数据集合中识别指定区域内或指定区域外图形部分的过程。裁剪用途很广泛,最典型的就是确定场景中位于指定区域内的景物部分。其中,指定区域成为裁剪窗口,一般为矩形,由四条边组成,上、下、左、右,即:(xl,yb),(xr,yt)。实质上来说,裁剪就是确定哪些多边形等几何体位于裁剪窗口内。对于点(x,y),只要判断两对不等式:xl≤x≤xr,yb≤y≤yt即可。
如果四个点坐标的不等式都不成立,则这个点在矩形窗口外,否则,在窗口内。有一种最简单的裁剪方法,就是将所有图形扫描转换成点,然后在进行判断。但是这种方法时间消耗太大,非常不可取。倘若将全部在窗口外的图形完全排除而不进行扫描转换,则时间上面可以高效很多,故一般采用先裁剪再扫描的方法。
按裁减对象来分,裁剪算法大概分为如下几种:点裁剪、直线段裁剪、区域多边形裁剪、曲线裁剪和文字裁剪。
裁剪有多方面应用,主要包括:使用实体造型创建对象、在三维视图中标示出可见面、对图形的一部分进行删除、复制或移动操作、防止图形边界混淆、从特定场景中抽取指定部分等。在不同的应用中,裁剪窗口的形状也不尽相同。然而,裁剪算法是否高效关键在减少求交运算,高效识别裁剪线段是否与裁剪窗口边界相交。
二维裁剪算法分为两种,对二维线段的裁剪以及对二维多边形的裁剪,在这两方面,国内外许多专家学者都进行了深入的研究,出现了很多经典算法。对于前者,比较经典的算法有便于硬件实现的中点分割算法,基于编码技术的cyrus-berk裁剪算法,nicholl等提出的基于几何变换技术的nln算法,通过法向点积判别的cyrus-ber
k裁剪算法,在nln算法基础上发展的elc算法,以及liang-bars
ky算法等。另外,还有一种比较高效的只用整数运算来计算整数交点的线裁剪算法,是由m.dorr综合了直线参数表示方法和cohen-suthcrland的编码方法而得到的。
2 椭圆形窗口线裁剪算法描述
椭圆形不仅是计算机图形学中的基本几何元素之一,而且许多实际问题的解决中,椭圆也是作为处理对象进行操作的。对于计算机图形学中的裁剪算法来说,关于椭圆形窗口的裁剪算法是非常重要的。设标准椭圆的方程为:
x2/a2+y2/b2=1
其中,标准椭圆的中心点为坐标轴的原点o,假设a(xa,ya)、b(xb,yb)(xa≤xb)为被裁剪线段的两个端点,则裁剪可按如下步骤进行:
2.1 特殊情况的处理
当xa=xb时,即坐标轴的纵轴与被裁减的线段平行,这时分为两种情况,线段完全位于椭圆外部,即xaa;否则,则需求取椭圆和线段的交点,其横坐标设为xa。
当ya=yb时,即坐标轴的横轴与被裁剪线段平行,这时也有两种情况,线段完全位于椭圆外部;即yab;否则,求需要求椭圆与线段的交点,其纵坐标均为ya。
2.2 去除所有位于椭圆外切矩形外的线段。本步采用外切矩形包围盒的方法,外切矩形由四条直线组成,x=-a、x=a、y =-b、y=b。当min(xa,xb)≥a或max(xa,xb)≤-a或min(ya,yb}≥b或max{ya,yb)≤-b时,线段ab位于外切矩形的同侧,然后转步骤3。
2.3 线段端点与椭圆窗口的位置关系
椭圆有一条基本性质,即圆周上任意一点到两个定点的距离和等于特定常数。又由椭圆方程可得,a为椭圆的长半轴长度,因此可以根据线段的两端点到椭圆两焦点的距离之和是否小于2a的方法,来确定线段的端点是否位于椭圆内。因为椭圆上任意一点到两焦点的距离之和等于2a,在椭圆外部的点,到两焦点的距离之和大于2a,而在椭圆内部的点,到两焦点的距离之和大于2a。
最简单的直接可以显示的情况就是,线段两端点均位于椭圆内部,进而不需要求交点,因为该线段移动位于椭圆内。另一种情况就是线段与椭圆有一个交
文档评论(0)