一种圆反走样显示方法_2

文档序号:9471547阅读:来源:国知局

[00对 (1)设变量X和y的初值分别为[a]和「6 +巧];从X= [a]像素列开始,在X像素列 选取最靠近理想圆弧的两个像素坐标分别为片.1') = ([0],「6 +巧)和(.^'-1)=恥].「6 + "1-]), 灰度为g(.、.,.V)二g。,。、. (1 + /) + /? -fA+ 叫)和 (A.,.V-。=g,,,;,、' (!A+ /?] - /,- /?),进入步骤 (2);其中,[?]表示对?四舍五入取整,「?1表示对?上取整;
[003引似判断y〉x-a+b是否成立:若成立,则进入步骤(3);否则结束;
[0037] (3)X=X+1,进入步骤(4);
[003引(4)判断x2+(y-l)2<R2是否成立:若成立,则进入步骤(6);否则进入步骤妨;
[0039] 巧)y=厂1,进入步骤化);
[0040] (6)对坐标为(X,y)和(X,厂1)的像素点,计算:
[004引(7)计算坐标为(X,y)和(X,厂1)的像素点的灰度值为:
[0044]
[0045]

[0047] 返回步骤似。
[0048] 本发明计算量较少,适用硬件平台较多的一种实现方法为:对于圆方程为 (x-a)2+(y-b)2=R2的理想圆,首先计算直线X=a和y=x-a+b之间的45。理想圆弧的 像素及对应的像素灰度值,计算过程为:
[004引 (1)设变量X和y的初值分别为[a]和「6 +及1;;从X= [a]像素列开始,在X像素列 选取最靠近理想圆弧的两个像素坐标分别为枝)?) = ([0],「& +刊)和(.W'-lM[fl],「6 +Rl-:l), 灰度为如、.。^) = 3厲.(1. + 6 + 及-「6+巧1)和'非',.1'-!)二-.3,,,.,、.(「々^叫--/,-巧),进入步骤 (2);其中,[?]表示对?四舍五入取整,「*1表示对?上取整;
[0050]计算:
[005引 似判断y〉x-a+b是否成立:若成立,则进入步骤(3);否则结束;
[0056] (3)X=X+1,进入步骤(4);
[0057] (4)判断ji<-INCE是否成立:若成立,则进入步骤(9);否则进入步骤妨;
[005引 巧)y=厂1,进入步骤化);
[0059] (6)更新j〇=INCE+j1,ji=INC肥+j1,进入步骤(7);
[0060] (7)计算坐标为(X,y)和(X,y-1)的像素点的灰度值为:
[0061]
[0062]
[0063] 其中
[0064] 进入步骤做;
[0065]做INCE=INCE+ 丫1,INCNE=INCNE+ 丫2,
返回步骤似;
[0066](9)更新j〇=INCE+j0,ji=INCE+j1,进入步骤(10);
[0067] (10)计算坐标为(X,y)和(X,y-1)的像素点的灰度值为:
[0068]
[007。 进入步骤(11); 叮"
[0072](ll)INCE=INCE+丫1,INCNE=INCNE+丫1,n=吉;返回步骤似。
[0073] 有益效果:本发明提供的圆反走样显示方法,具有如下优势:1、建立了相邻像素 对之间坐标和灰度的递推公式,算法简洁;2、与现有方法比,本发明方法提高了反走样效果 和运行速度;3、在递推过程中只使用加法和比较,避免了乘除,所W本发明方法不但适合用 C、MATLAB等各种编程语言在计算机上实现,也可W用于FPGAXPLD等可编程逻辑忍片组成 的嵌入式显示系统。
【附图说明】
[0074] 图1为根据距离计算灰度的示意图;
[00巧]图2为圆弧在下一像素列的走向示意图;
[0076] 图3为实施例一的实现流程图;
[0077] 图4为八分之一圆反走样效果比较图,由上至下分别为未反走样圆弧、用文献
[10]算法反走样和用实施例一算法反走样效果图;
[0078] 图5为实施例二的实现流程图;
[0079] 图6为反走样效果比较图,6(1)为未反走样效果图,6(2)为采用实施例二方法反 走样效果图;
[0080] 图7为实施例S的实现流程图;
[0081] 图8为采用实施例S的方法得到的天地球画面。
【具体实施方式】
[0082] 下面结合附图对本发明作更进一步的说明。
[0083] -种圆反走样显示方法,对于位于某一像素列上的一段理想圆弧,从该像素列中 选择出最靠近该理想圆弧的两个像素对该理想圆弧进行显示,像素灰度值g的计算方法 为:如图1所示,将理想圆弧圆屯、到像素中屯、的连线与理想圆弧的交点记为点B,像素中屯、 与点B之间的距离记为1,像素灰度值g与1成反比,1越小的像素灰度值g越大,1越大的像 素灰度值g越小;Wn位二进制数表示像素灰度值g,gmgx= 2 "且gmm= 0,由于1G[0, 1], 因此有g=
[0084] 利用圆的八方向对称性,计算出用于显示45°理想圆弧的像素及对应的像素灰度 值,然后通过坐标变换即可得到显示整个理想圆的像素及对应的像素灰度值。在接下来= 个实施例中,我们主要计算方程为(x-a)2+(y-b)2=R2的圆在直线X=a和y=x-a+b之 间的45 °理想圆弧的像素及对应的像素灰度值。
[0085] 实施例一
[0086] 对于圆方程为(x-a)2+(y-b)2=R2的理想圆,首先计算直线X=a和y=x-a+b之 间的45°理想圆弧的像素及对应的像素灰度值,计算过程为:
[0087] (1)设变量X和y的初值分别为[a]和「6 +處.I;从x=[a]像素列开始,在x像素列 选取最靠近理想圆弧的两个像素坐标分别为(w'MH,「6 +i?1WP(.Y,.v-l) = ([4「6 + ?-H), 灰度为复和.+A牛代-P) +巧)和'g('r. ^二g….(|-片^巧1 -A-巧),进入步骤 (2);其中,[?]表示对?四舍五入取整,「叫表示对?上取整;
[008引 似判断y〉x-a+b是否成立:若成立,则进入步骤(3);否则结束;
[0089] (3)由于45°理想圆弧还没有生成完毕,因此Wx像素列选取的两个像素的坐标 和灰度来递推X+1像素列选取的两个像素;如图2所示,设在X像素列选择的两个像素点为 P和S,P的坐标为(Xp,yp) = (X,y),S的坐标为(Xs,Ys)二(X,厂1),由于只考虑1/8圆情 况,因此X+1像素列最靠近理想圆弧的两个像素点只能在肥、ME和SE中选择,肥、ME和SE 的坐标为(Xne,yj=(却+1,yp)、(Xme,yME)=(却+1,yp-1)和(XsE,ysE)=(却+1,yp-2);
[0090] X=x+1,进入步骤(4);
[0091] (4)判断x2+(厂1)2<R2(即判断综£ +义L<^)是否成立:若成立,则认为理想圆 弧为图2中实线情况,判断ME在理想圆内,最靠近理想圆弧的两个像素点为肥和ME,进入 步骤化);否则认为理想圆弧为图2中虚线情况,判断ME在理想圆外或圆上,最靠近理想圆 弧的两个像素点为ME和SE,进入步骤巧);
[009引 05)y=厂1,进入步骤化);
[009引 (6)计算坐标为(X,y)和(X,y-1)的像素点的灰度值为:
[0096] 返回步骤似。
[0097] 实施例一生成八分之一圆的生成算法流程图如图3所示,其他八分之屯圆的生成 可W利用对称性计算。实施例一的算法使用了比较、取整、加法、减法、乘法、除法等基本运 算,可W用C、MTLAB等各种编程语言实现。
[0098] 图4为同一段1/8圆弧的显示效果的比较,自上而下分别为未反走样圆弧、用文献 [10]算法反走样和用实施例一算法反走样的效果对比,显然实施例一算法生产的圆弧效果 视觉效果较好。
[0099] 实施例二
[0100] 基于实施例一的分析,我们设变量
将肥、ME 和SE的坐标分别带入j(X,y)进行计算,得到的结果分别记为Jw、J'Me和jse。
[0101] 若根据实施例一的步骤(4)的判断,理想圆弧为图2中实线情况,判断ME在理想 圆内,最靠近理想圆弧的两个像素点为肥和ME,对肥可W得到:
[0104] 由于1,因
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1