999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Bresenham算法圓弧的設(shè)計(jì)與算法分析

2021-07-13 10:17:08唐啟見(jiàn)湖南軟件職業(yè)學(xué)院
現(xiàn)代經(jīng)濟(jì)信息 2021年18期
關(guān)鍵詞:區(qū)域

唐啟見(jiàn) 湖南軟件職業(yè)學(xué)院

一、圓的構(gòu)建

圓形是在GUI設(shè)計(jì)過(guò)程中不可規(guī)避的重要圖形,可以通過(guò)確定“一點(diǎn)一線”來(lái)描述一個(gè)圓形,“一點(diǎn)”為圓心,“一線”為圓的半徑,圓心確定了圓的位置,半徑確定了圓的大小。圓形及圓弧的生成算法主要有數(shù)值微分法、Bresenham畫(huà)圓算法和中點(diǎn)畫(huà)線法等。

由于圓形是一個(gè)對(duì)稱的結(jié)構(gòu),不但左右對(duì)稱,而且中心對(duì)稱,所以利用Bresenham畫(huà)圓算法只需要繪制出圓的一段圓弧,然后通過(guò)對(duì)稱復(fù)制的方法即可實(shí)現(xiàn)整個(gè)圓的繪制。首先確定目標(biāo)圓的圓心,然后以圓心為坐標(biāo)原點(diǎn)建立對(duì)稱坐標(biāo)系,如先繪制第一象限的1/8段圓弧(如圖1所示)。設(shè)最先確定的逼近像素點(diǎn)Pi-1的坐標(biāo)為(xi-1,yi-1),那么在圓弧附近有兩個(gè)或者多個(gè)逼近像素點(diǎn),如圖1中的Si(xi-1+1,yi-1)和Ti(xi-1+1,yi-1-1)點(diǎn),在這兩個(gè)點(diǎn)的選擇時(shí)需要計(jì)算這兩個(gè)點(diǎn)離理論圓弧的距離,選擇離理論圓弧比較近的那個(gè)點(diǎn)作為圓弧構(gòu)建的下一個(gè)像素點(diǎn),以此類推,可以形成一段1/8段圓弧。下面來(lái)討論一下Si點(diǎn)和Ti點(diǎn)到理論圓弧的距離,設(shè)Si點(diǎn)和Ti點(diǎn)到理論圓弧的距離分別為D(Si)、D(Ti),計(jì)算公式如下:

圖1 Bresenham算法構(gòu)建1/8段圓弧

因?yàn)镾i點(diǎn)和Ti點(diǎn)的坐標(biāo)分別為(xi-1+1,yi-1)、(xi-1+1,yi-1-1),那么Si點(diǎn)和Ti點(diǎn)分別離坐標(biāo)原點(diǎn)即圓心的距離的平方分別為:(xi-1+1)2+yi-12、(xi-1+1)2+(yi-1-1)2,將它們與圓的半徑的平方做差就可以得出Si點(diǎn)和Ti點(diǎn)離理論圓弧的距離大小了。假設(shè)Si點(diǎn)在圓弧的外部,Ti點(diǎn)在圓弧的內(nèi)部。

D(Si)=[(xi-1+1)2+yi-12]-R2

D(Ti)=R2-[(xi-1+1)2+(yi-1-1)2]

令di=D(Si)-D(Ti),如果di>0,說(shuō)明Ti點(diǎn)比Si點(diǎn)更靠近理論圓弧,即選擇Ti點(diǎn)更合適;反之選擇Si點(diǎn)。

di=D(Si)-D(Ti)=[(xi-1+1)2+yi-12]-2R2+[(xi-1+1)2+(yi-1-1)2] (1)

將i+1代入(1)式中,得:

di+1=[(xi+1)2+yi2]-2R2+[(xi+1)2+(yi-1)2]

將di+1-di,得:

di+1-di=2[(xi+1)2-(xi-1+1)2]+(yi2-yi-12)+(yi-1)2-(yi-1-1)2

如果di≥0,則選擇Ti點(diǎn),即:

xi=xi-1+1,yi=yi-1-1,di+1=di+4(xi-1-yi-1)+10

若di<0,則選擇Si點(diǎn),即:

xi=xi-1+1,yi=yi-1,di+1=di+4xi-1+6

以此類推,可通過(guò)計(jì)算di和di+1來(lái)對(duì)Si和Ti進(jìn)行取舍。將i=1、x0=0、y0=R代入式(1)中:

d1=3-2R

通過(guò)上述討論可通過(guò)Bresenham畫(huà)圓算法得到第一象限的1/8圓弧,再通過(guò)對(duì)稱復(fù)制的方法即可創(chuàng)建整個(gè)圓形。

二、橢圓的構(gòu)建

橢圓與圓的形狀的相似性,決定了它們的算法具有一定的相似性。橢圓也是一個(gè)對(duì)稱結(jié)構(gòu)的圖形,由于橢圓的對(duì)稱性相對(duì)于圓形的對(duì)稱性來(lái)說(shuō)有一定的局限性,所以需要把橢圓的在一個(gè)象限的1/4段圓弧構(gòu)建出來(lái),然后再用對(duì)稱復(fù)制的方法形成整個(gè)橢圓。首先將坐標(biāo)原點(diǎn)設(shè)為橢圓的中心點(diǎn),x軸方向的半徑設(shè)為a,y軸方向的半徑設(shè)為b,橢圓上的點(diǎn)如下關(guān)系:

隱式方程式為:

選取第一象限的1/4段橢圓弧來(lái)進(jìn)行討論,如圖2所示,N為橢圓弧上的某個(gè)點(diǎn),N左邊的點(diǎn)在區(qū)域-1,N右邊的點(diǎn)在區(qū)域2,設(shè)N點(diǎn)的斜率為-1,那么區(qū)域1的點(diǎn)的斜率大于-1,區(qū)域2的點(diǎn)的斜率小于-1。

圖2 Bresenham算法構(gòu)建橢圓弧(一)

通過(guò)上述分析,以N點(diǎn)為界分為區(qū)域1和區(qū)域2兩個(gè)區(qū)域,在區(qū)域1中,x增長(zhǎng)速度比y減小的速度要快,所以選取x軸為基軸進(jìn)行討論,反之在區(qū)域2中,x增長(zhǎng)速度比y減小的速度要慢,所以選取y軸為基軸進(jìn)行討論。無(wú)論是在區(qū)域1作圖時(shí)隨著x的不斷加1,y是否作減1?還是在區(qū)域2作圖時(shí)隨著y的不斷減1,x是否作加1?都需要通過(guò)計(jì)算來(lái)決定。若在區(qū)域1作圖時(shí),每確定一點(diǎn)后都需要判斷是否到達(dá)N點(diǎn)。如果到達(dá)N點(diǎn),就需要轉(zhuǎn)換到區(qū)域2進(jìn)行作圖。由式(2)得:

對(duì)式(3)進(jìn)行求導(dǎo):

dy/dx=-(b2·x)/(a2y)

如果斜率大于-1(區(qū)域1),則有:

b2x<a2y

根據(jù)Bresenham算法的基本思想進(jìn)行討論,首先建立對(duì)稱坐標(biāo)系,把坐標(biāo)原點(diǎn)定為橢圓中心點(diǎn)。設(shè)Pi-1點(diǎn)為已確定的逼近像素點(diǎn),坐標(biāo)為(xi-1,yi-1),Pi-1點(diǎn)有兩個(gè)靠近點(diǎn)Si點(diǎn)和Ti點(diǎn),它們的坐標(biāo)分別為:(xi-1+1,yi-1)、(xi-1+1,yi-1-1)。下面來(lái)分析討論這兩個(gè)點(diǎn)哪一個(gè)更靠近理論橢圓弧,然后選擇更靠近的那個(gè)點(diǎn)作為橢圓弧的逼近像素點(diǎn)。設(shè)Si點(diǎn)和Ti點(diǎn)離橢圓弧的距離分別為D(Si)和D(Ti),則有:

令di=D(Si)-D(Ti),如果di≥0,則選擇Ti點(diǎn)作為橢圓弧的逼近像素點(diǎn);反之則選擇Si點(diǎn)。

用i+1替代式(4)中的i,得:

將di+1-di,即可得到:

若di≥0,則選擇Ti點(diǎn),此時(shí)有:

若di<0,則選擇Si點(diǎn),此時(shí)有:

同理,將di的初始值為d1,代入式(4)得:

下面來(lái)討論在區(qū)域2作圖時(shí)的情況。如圖3所示,設(shè)Pi-1點(diǎn)為已確定的逼近像素點(diǎn),坐標(biāo)為(xi-1,yi-1),Pi-1點(diǎn)有兩個(gè)靠近點(diǎn)Si點(diǎn)和Ti點(diǎn),坐標(biāo)分別為:(xi-1+1,yi-1)、(xi-1+1,yi-1-1)。同理,設(shè)Si點(diǎn)和Ti點(diǎn)離橢圓弧的距離分別為D(Si)和D(Ti),則有:

圖3 Bresenham算法構(gòu)建橢圓弧(二)

D(Si)=b2·(xi-1+1)2+a2·(yi-1-1)2-a2·b2

D(Ti)=a2·b2-b2·xi-12-a2·(yi-1-1)2

根據(jù)式(2)同理可知,選擇D(Si)和D(Ti)中更接近0的點(diǎn)即可。

用i+1代替式(5)中的i,得:

將di+1-di,可以得到:

若di≥0,選擇Ti點(diǎn)作為橢圓弧的逼近像素點(diǎn):

若di<0,選擇Si點(diǎn)作為橢圓弧的逼近像素點(diǎn):

三、結(jié)語(yǔ)

很多設(shè)計(jì)人員在LCD的GUI設(shè)計(jì)時(shí)面臨著算法的選擇,筆者也不例外,目前廣泛被大家接受的算法主要有數(shù)值微分法(DDA)、中點(diǎn)畫(huà)線法、Bresenham算法等,它們?cè)诓煌瑘D形設(shè)計(jì)時(shí)各具特色,這就需要設(shè)計(jì)人員根據(jù)自己的專長(zhǎng)與需要進(jìn)行選擇。筆者在進(jìn)行大量的實(shí)驗(yàn)的基礎(chǔ)上認(rèn)為Bresenham算法是一種具有高效性強(qiáng)、準(zhǔn)確度高等特點(diǎn)的算法。上述分析有不到之處敬請(qǐng)指教。

猜你喜歡
區(qū)域
分割區(qū)域
探尋區(qū)域創(chuàng)新的密碼
科學(xué)(2020年5期)2020-11-26 08:19:22
基于BM3D的復(fù)雜紋理區(qū)域圖像去噪
軟件(2020年3期)2020-04-20 01:45:18
小區(qū)域、大發(fā)展
商周刊(2018年15期)2018-07-27 01:41:20
論“戎”的活動(dòng)區(qū)域
區(qū)域發(fā)展篇
區(qū)域經(jīng)濟(jì)
關(guān)于四色猜想
分區(qū)域
公司治理與技術(shù)創(chuàng)新:分區(qū)域比較
主站蜘蛛池模板: 18禁不卡免费网站| 69视频国产| 欧美日韩精品综合在线一区| 亚洲一级毛片在线观| 欧美国产中文| 狠狠色丁婷婷综合久久| 呦系列视频一区二区三区| 国产精品hd在线播放| 欧美综合成人| 国产精品男人的天堂| 国产在线啪| 国产成人亚洲日韩欧美电影| 天堂成人在线| 亚洲精品视频网| www精品久久| 色九九视频| 狠狠亚洲婷婷综合色香| 欧美激情视频二区三区| 丁香五月亚洲综合在线| 亚洲a级毛片| 伊人狠狠丁香婷婷综合色| 91小视频在线观看免费版高清| 天天综合网色| 青青草原国产av福利网站| 亚洲AⅤ波多系列中文字幕| 国产亚洲精品无码专| 国产精品自拍露脸视频| 亚洲第一色网站| 亚洲人成日本在线观看| 亚洲午夜天堂| 午夜a级毛片| 97国产在线观看| 亚洲不卡影院| 99精品欧美一区| 一级爱做片免费观看久久| а∨天堂一区中文字幕| 国产内射在线观看| a免费毛片在线播放| 国产微拍一区| 国产在线视频自拍| a毛片基地免费大全| 亚洲成人在线网| 黄色成年视频| 国产丰满成熟女性性满足视频| 亚洲一级色| 无遮挡一级毛片呦女视频| 亚洲天堂网在线播放| 国产精选小视频在线观看| 九九线精品视频在线观看| 国产嫖妓91东北老熟女久久一| 国产亚洲精品自在久久不卡| 亚洲欧洲AV一区二区三区| 国产综合精品日本亚洲777| 精品视频91| 秋霞午夜国产精品成人片| 国产黄在线免费观看| 99热国产这里只有精品9九| 又污又黄又无遮挡网站| 免费在线a视频| 国产精品久线在线观看| 亚洲午夜综合网| 国产精品观看视频免费完整版| 亚洲三级色| 国产十八禁在线观看免费| 国产欧美视频一区二区三区| 国产99在线| 免费在线色| 久久超级碰| 在线视频亚洲欧美| 在线国产毛片| 亚洲欧美在线精品一区二区| 一级毛片免费不卡在线| 97久久精品人人做人人爽| 亚洲六月丁香六月婷婷蜜芽| 欧美性爱精品一区二区三区| 国产黄色免费看| 综合网天天| 国产在线精彩视频二区| 一本二本三本不卡无码| 亚洲天堂视频网| 在线人成精品免费视频| av午夜福利一片免费看|