- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
四川工业学院学报
JournalofSichuanUniversityofScienceandTechnology
文章编号:100025722(2004)0320043202
一种快速准确的画圆算法
王润云,王志喜
(湖南科技大学计算机学院,湖南湘潭 411201)
摘 要: 作者首先指出了传统Bresenham画圆算法的缺陷,然后提出了一种快速准确的画圆算法,称为
新Bresenham画圆算法,并用实例进行验证,最后对新Bresenham画圆算法的优越性进行了分析。
关键词: 新Bresenham画圆算法;效率分析;准确性;复杂性 中图分类号:TP2178文献标识码:A
0 引言
3]
生成圆弧的Bresenham[2、算法是众多画圆算法中非常有效的方法之一。但是,由于没有充分考虑圆弧的特点,使得传统的Bresenham画圆算法效率不够高,算法复杂,多余点,容易造成圆弧失真画圆算法的缺陷,,新Bresenham,Bresenham1 圆弧的对称性
对于给定的半径r和圆心(xc,yc)可以先计算圆心在原点的圆的象素位置。然后把每个计算出的位置(x,y)移动到实际的屏幕位置。根据圆弧的8分圆特性(圆弧关于坐标轴和两条平分线对称),只要构造出第1象限上半部分圆弧的显示方法,其它七个八分圆中的位置就可由对称性得到(如图1所示)
。
弧的对称性。
214,、第二次判别。15Bresenham画圆算法没有充分考虑圆弧的特性。实际上,根据圆弧的8分圆特性,只需要构造第1象限上半部分圆弧的显示方法即可。而传统Bresenham画圆算法考虑的是整个第1象限圆弧的显示方法。
3 新Bresenham画圆算法
在构造算法之前,先证明一个引理。311 一个引理引理
22
如果正数x,y,y1,r满足y21=r-x,y>=1,d1=y1-(y-1),d2=y-y1,p=4r2-4x2-4y2+4y-1,那么下列结
论成立。
(1)d1<d2的充要条件为p<0;
(2)d1=d2的充要条件为p=0;(3)d1>d2的充要条件为p>0。
证明
(1)d1-d2=2y1-2y+1<0等价于2y1<2y-1。因为
2y1>0,2y-1>0,所以2y1<2y-1等价于4y21<4y2-4y+1。因为y1=r-x,所以4y1<4y-4y+1等价于4r-4x
2
2
2
2
2
2
2
2 传统Bresenham画圆算法的缺陷
211 效率不够高
<4y2-4y+1,等价于4r2-4x2-4y2+4y-1<0,即p<0。
(2)、(3)的证明方法与(1)相同。
在每一个点的计算过程中,最多需要进行3次判断,7次整
数加法运算,3次整数乘法运算,效率不够高。212 画点不够准确
当圆的半径大于9时,该算法选择会选择一些不是距离圆弧最近的点,不够准确。213 存在多余点
当圆的半径大于9时,可能存在多余点,容易形成锯齿,造成圆弧失真。而且这些多余点均没有相应的对称点,破坏了圆
312 算法构造
从(0,r)开始,构造第1象限上半部分圆弧的显示方法。在
画出p(xk,yk)以后,下一点在B(xk+1,yk)和A(xk+1,yk-1)选择(如图2所示)。
令d1=y-(yk-1),d2=yk-y,pk=4r2-4(xk+1)2-4y2k+4yk-1
(1)若pk>0,由引理可知,点A距离圆弧比较远,点B距离
圆弧比较近,取点B,xk+1=xk+1,yk+1=yk
收到日期:2003209208
基金项目:湖南省自然科学基金,编号:02JJY4045资助项目。
作者简介:王润云(19602),女,河北省唐山市人,湖南科技大学计算机学院副教授,学士,主要从事面向对象技术、计算机辅助设计等研究。
? 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved.
44四川工业学院学报 2004年
示。
表1 新Bresenham画圆算法实例分析
k
xk
yk
pk
计算点到圆弧的距离
0.00000.04990.19800.4403
-0.1511
01234101010109987
17111
-13
5
-17-11-13
推导pk+1与pk的关系
pk+1=4r-4(xk+1)pk+1-pk=-8xk-12pk+1=pk-8xk-12
50.29560.0000
-0.
1005
-4yk+1+4yk+1+1
67
令 pxk=-8xk-12,则pk+1=pk+pxk,pxk+1=-8xk+1-12
=-8xk-8-12=pxk-8
(2)若pk=0,由引
文档评论(0)