网站大量收购独家精品文档,联系QQ:2885784924

椭圆生成算法综述.docxVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

椭圆生成算法综述

1椭圆生成算法

计算机图形学的基本元素包括直线、圆形、椭圆等。现在,许多科学家正在关注直线和圆弧的生成算法。因此,如breenha直线生成算法、dda直线生成算法、正交法、breenha交叉生成算法和多边形近似法,生成了几种著名的算法。然而,对于椭圆生成算法的研究并不活跃,但椭圆生成操作是一项定期操作。因此,椭圆生成算法的任何进步都非常重要。现在,影响椭圆生成算法的算法属于文献。总结上述算法存在以下缺陷。

(1)多处使用非常耗时的浮点运算和取整运算;

(2)使用三角函数运算;

(3)通过缩小整数范围来弥补执行速度的缓慢;

(4)在算法推导过程中,引入过多新概念,使算法思想过于复杂;

(5)以牺牲所使用空间范围的增加为代价,来换取运行的高效率.

2椭圆的生成和运动

设椭圆的标准方程为x2a2+y2b2=1x2a2+y2b2=1,其中a,b分别为椭圆的长、短轴,圆心(x0,y0)为坐标原点.为了不失一般性,如果圆心不在坐标原点,可作相应的平移变换,生成圆心在坐标原点的椭圆.另外,考虑椭圆的四分对称性,我们只讨论第一象限内的椭圆的生成即可.

椭圆与圆不同,在第一象限内通常要分为2个区域来处理,2个区域之间以斜率为-1的点(即法向量的2个分量相等的点)作为分界.从点(0,b)开始,在第一象限内沿椭圆路径顺时针步进,在区域1内斜率大于-1,以X方向作为单位步长来衡量Y方向的走向;当斜率变为小于-1时,则转向区域2,即以Y方向作为单位步长来衡量X方向的走向.

2.1金融椭圆ss计算

从图1中A点开始,向右下方逐点寻找显示(aa(要用的点.如图2所示,假设Pi-1为(aa(上已选定的点,根据(aa(的走向,下一点应从Hi或Ti中选择.显然应选图1中离(aa(最近的点.设Hi和Ti两点的坐标分别为(xh,yh)和(xt,tt),又设有一对(as,bs)满足(b2s2s×x2h2h+a2s2s×y2h2h-a2s2s×b2s2s)+(b2s2s×x2t2t+a2s2s×y2t2t-a2s×b2s)=0,即此椭圆弧(长轴为as,短轴为bs)满足Hi和Ti点到该弧的距离相等.则我们可以把这个椭圆弧(ss(作为一条分界线:当(aa(在(ss(的上方时应选Hi点来显示(a;当(a在(s的下方时应选Ti点来显示(a.

下一步说明如何判断(a在(s上方或下方的方法.

令D(P)=b2x2+a2y2-a2b2,

di=D(Hi)+D(Ti)

=(b2x2h+a2y2h-a2b2)+(b2x2t+a2y2t-a2b2).

显然di是a2b2的递减函数.

当a2b2=a2sb2s时,di=0.

当a2b2a2sb2s时,(a在(s弧上方,即选Hi点,反之选Ti点.

最重要的问题是考虑如何快速地判断出di的正负.

设图2中Pi-1为当前已选中的点,其坐标为(xi-1,yi-1),下一点即选择点Hi和Ti的坐标为(xi,yi)和(xi,yi-1),可得x0=0,y0=b,x1=x0+1.

设d1,i为区域1中第i点的d值,则

当d1,i0时,选择点Hi来显示(s?即Yi+1=Yi.

则由式(2)可得

d1,i+1=d1,i+4b2xi+2b2+a2(3)

当d1,i≥0时,选择点Ti来显示(s?即Yi+1=Yi-1.

则由式(2)可得

d1,i+1=d1,i+4b2xi+2b2+4a2-4a2yi=d1,i+2b2(2xi+1)-4a2(yi-1)(4)

由式(1),(3)和(4)即可得出区域1内的决策参数d的递推公式,详见第3节算法描述.

2.2区域偏转算法的基本思想

vanAken提出了一个基于中点的转换规则,并给出了正确的生成结果,但同时也不应忽视,该算法所需要的计算量是相当昂贵的;Kappel关于转换点的判断方法虽然是有效的,但却在区域的边界处存在着机率很高的错误象素;文献在处理转折点的判断问题时,引入了除法运算.

本算法从区域转折点的定义入手,即在转折点处的斜率值为-1,又根据椭圆方程,可得

dy/dx=-2b2x/2a2y.

由此可得,在区域1和区域2的交界处dy/dx=-1,即b2x=a2y;

则移出区域1的条件为

b2x≥a2y(5)

为了进一步节省运算时间,提高算法效率,对于式(5)的判断,我们采用增量式判断.具体做法是:在X方向每走一步,b2x增加(或减少)b2;在Y方向每走一步,a2y增加(或减少)a2,具体实现不再详述.

另外,在区域2内,我们不再把式(5)的判断作为该区域的终止条件,而是在进入区域2之前,把区域1的最后一点的坐标记录下来,记为Xend和Yend;然后,在区域2内,从(a,0)点开始,逆时针显示;以Y方向为单位步长,判断X方向的变化,从而显示区域2内的椭圆弧.即该区域内生成最后

文档评论(0)

ss_account + 关注
实名认证
文档贡献者

专注于文档制作,提供高质量文档

1亿VIP精品文档

相关文档