專(zhuān)利名稱(chēng):粗線(xiàn)繪制方法及其裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于繪制粗線(xiàn),特別是一種粗線(xiàn)繪制方法及其相關(guān)裝置。
背景技術(shù):
在圖形處理中,很多情況下,繪制粗線(xiàn)都是常見(jiàn)的需求。假如圖形處理 硬件配備有足夠的計(jì)算能力,則可以繪制高質(zhì)量的粗線(xiàn)并顯示在顯示屏幕上。 然而,假如受限于成本因素,圖形處理硬件被設(shè)計(jì)為具有有限的計(jì)算能力, 則不足以采用復(fù)雜的粗線(xiàn)繪制算法。
以導(dǎo)航系統(tǒng)為例。導(dǎo)航系統(tǒng)需要圖形處理,以將電子地圖或路徑顯示在 顯示屏幕上。因此,粗線(xiàn)(每條粗線(xiàn)的寬度皆大于1)經(jīng)常被繪制并顯示在顯
示屏幕上。假設(shè),由于成本限制,導(dǎo)航系統(tǒng)不具有足夠的計(jì)算能力,則導(dǎo)航 系統(tǒng)需要簡(jiǎn)化的繪制方法,以將需要的粗線(xiàn)呈現(xiàn)給用戶(hù)。假如執(zhí)行現(xiàn)有技術(shù) 的單線(xiàn)繪制方法,通過(guò)重復(fù)繪制單線(xiàn)來(lái)構(gòu)建粗線(xiàn),則可以相應(yīng)加快粗線(xiàn)的繪 制速度。然而,粗線(xiàn)繪制速度的加快是以犧牲粗線(xiàn)質(zhì)量為代價(jià)的。例如,現(xiàn) 有技術(shù)的單線(xiàn)繪制方法不能夠保證在具有夾角的兩條粗線(xiàn)之間產(chǎn)生平滑的交 點(diǎn)。此外,假如需要繪制具有相同寬度、卻具有不同斜率的粗線(xiàn)并將其顯示 在顯示屏幕上,則用戶(hù)可以察覺(jué)出由現(xiàn)有技術(shù)單線(xiàn)繪制方法產(chǎn)生的實(shí)際粗線(xiàn) 具有不同的寬度。因此,為避免使用單線(xiàn)繪制方法引起的上述問(wèn)題,找出一 種不需要高計(jì)算能力即可繪制高質(zhì)量粗線(xiàn)的簡(jiǎn)單而新穎的粗線(xiàn)繪制方案是非 常必要的。
發(fā)明內(nèi)容
為解決上述僅具有高計(jì)算能力才可繪制高質(zhì)量粗線(xiàn)的問(wèn)題,本發(fā)明提供 一種粗線(xiàn)繪制方法及裝置,可在低計(jì)算能力的情況下,繪制高質(zhì)量的粗線(xiàn)。
本發(fā)明提供一種粗線(xiàn)繪制方法,包含根據(jù)待繪制的粗線(xiàn)的寬度與對(duì)應(yīng) 于粗線(xiàn)的線(xiàn)路的起點(diǎn)與終點(diǎn)至少之一,繪制至少一預(yù)定圖案;根據(jù)預(yù)定圖案, 確定多個(gè)多邊形頂點(diǎn);以及執(zhí)行多邊形填充操作,以填充由多邊形頂點(diǎn)定義 的多邊形區(qū)域,并且將填充多邊形區(qū)域的繪制結(jié)果儲(chǔ)存至幀緩沖器。
本發(fā)明提供一種粗線(xiàn)繪制裝置,包含幀緩沖器、圖案繪制引擎以及多 邊形填充引擎。圖案繪制引擎根據(jù)待繪制的粗線(xiàn)的寬度與對(duì)應(yīng)于ffi^線(xiàn)的線(xiàn)路 的起點(diǎn)與終點(diǎn)至少之一,繪制至少一預(yù)定圖案。多邊形填充引擎,耦接圖案 繪制引擎與幀緩沖器,用以根據(jù)預(yù)定圖案,確定多個(gè)多邊形頂點(diǎn),執(zhí)行多邊 形填充操作,以填充由多邊形頂點(diǎn)定義的多邊形區(qū)域,并且將多邊形區(qū)域的 繪制結(jié)果儲(chǔ)存至幀緩沖器。
上述粗線(xiàn)繪制方法與粗線(xiàn)繪制裝置通過(guò)繪制預(yù)定圖案及填充多邊形區(qū)域 來(lái)繪制粗線(xiàn),從而達(dá)到了不需要高計(jì)算能力即能繪制高質(zhì)量粗線(xiàn)的效果。
圖1為根據(jù)本發(fā)明第一實(shí)施方式的粗線(xiàn)繪制裝置100的方塊示意圖。
圖2為根據(jù)本發(fā)明一實(shí)施方式的粗線(xiàn)繪制方法的流程圖。
圖3為圖2中步驟204的詳細(xì)流程圖。
圖4為位于目標(biāo)點(diǎn)粗線(xiàn)的線(xiàn)路上的多個(gè)點(diǎn)的示意圖。
圖5為圖2中步驟205的詳細(xì)流程圖。
圖6為對(duì)應(yīng)于具有不同半徑的圓的量化法向量示意圖。
圖7為圖1中步驟206的詳細(xì)流程圖。
圖8為當(dāng)粗線(xiàn)寬度等于奇數(shù)時(shí),定位多個(gè)多邊形頂點(diǎn)的范例。 圖9為當(dāng)粗線(xiàn)寬度等于偶數(shù)時(shí),定位多個(gè)多邊形頂點(diǎn)的范例。圖10為根據(jù)本發(fā)明第二實(shí)施方式的粗線(xiàn)繪制裝置1000的方塊示意圖。 圖11為本發(fā)明揭示的繪制方法與現(xiàn)有技術(shù)繪制方法繪制出的粗線(xiàn)示意圖。
具體實(shí)施例方式
在說(shuō)明書(shū)及權(quán)利要求當(dāng)中使用了某些詞匯來(lái)指稱(chēng)特定的組件。本領(lǐng)域的 技術(shù)人員應(yīng)可理解,硬件制造商可能會(huì)用不同的名詞來(lái)稱(chēng)呼同一個(gè)組件。本 說(shuō)明書(shū)及權(quán)利要求并不以名稱(chēng)的差異來(lái)作為區(qū)分組件的方式,而是以組件在 功能上的差異來(lái)作為區(qū)分的準(zhǔn)則。在通篇說(shuō)明書(shū)及權(quán)利要求當(dāng)中所提及的"包 含"為開(kāi)放式的用語(yǔ),故應(yīng)解釋成"包含但不限定于"。此外,"耦接" 一詞 在此為包含任何直接及間接的電氣連接手段。因此,若文中描述第一裝置耦 接于第二裝置,則代表該第一裝置可直接電氣連接于該第二裝置,或通過(guò)其 它裝置或連接手段間接地電氣連接至該第二裝置。
本發(fā)明提供一種粗線(xiàn)繪制方案。此粗線(xiàn)繪制方案利用圖案繪制引擎 (pattern drawing engine)繪制預(yù)定圖案(例如圓形或規(guī)則多邊形)作為參考, 以定位多個(gè)多邊形頂點(diǎn)。接著,粗線(xiàn)繪制方案執(zhí)行多邊形填充(filling)操作, 以填充由多邊形頂點(diǎn)定義的多邊形區(qū)域,從而繪制粗線(xiàn)。更進(jìn)一步的描述如 下。
請(qǐng)參閱圖1。圖1為根據(jù)本發(fā)明第一實(shí)施方式的粗線(xiàn)繪制裝置100的方塊 示意圖。在本實(shí)施方式中,粗線(xiàn)繪制裝置100包含粗線(xiàn)繪制控制器102、圖案 繪制引擎(例如,本實(shí)施方式中圓繪制引擎(circle drawing engine) 104)、多 邊形填充引擎(polygon filling engine) 106、線(xiàn)繪偉U引擎(line drawing engine) 108與幀緩沖器110。圓繪制引擎104被設(shè)定為,假如已知中心點(diǎn)(center point) 與半徑的信息,則繪制圓形,并且在需要時(shí),選擇性地填充圓形。多邊形填 充引擎106被設(shè)定為,找到多個(gè)對(duì)應(yīng)于待繪制的粗線(xiàn)的多邊形頂點(diǎn),填充由 多邊形頂點(diǎn)定義的多邊形區(qū)域,接著,將繪制結(jié)果儲(chǔ)存至幀緩沖器iio。粗線(xiàn)繪制控制器102被設(shè)定為,控制粗線(xiàn)繪制操作。例如,粗線(xiàn)繪制控制器102 輸出參數(shù)(例如圓心(drdepoint)的坐標(biāo)信息與圓半徑的長(zhǎng)度信息)至圓繪 制引擎104,接著,指示圓繪制引擎104執(zhí)行圓繪制操作,并且根據(jù)粗線(xiàn)的繪 制需求,選擇性地將繪制結(jié)果儲(chǔ)存至幀緩沖器IIO。本領(lǐng)域的技術(shù)人員應(yīng)可了 解,幀緩沖器110用于緩沖暫存即將顯示在顯示屏幕上的像素?cái)?shù)據(jù)。換句話(huà) 說(shuō),假如繪制結(jié)果未被儲(chǔ)存到幀緩沖器110中,則不會(huì)被顯示在顯示屏幕上。 在本實(shí)施方式中,線(xiàn)繪制引擎108用以支持點(diǎn)粗線(xiàn)(dotted thick line)繪制。 因此,當(dāng)需要繪制點(diǎn)粗線(xiàn)時(shí),粗線(xiàn)繪制控制器102將開(kāi)啟線(xiàn)繪制引擎108,以 定位沿著所要點(diǎn)粗線(xiàn)的線(xiàn)路(line path)的各線(xiàn)段(line segment)的兩個(gè)端點(diǎn)。 接著,線(xiàn)段的起點(diǎn)與終點(diǎn)的坐標(biāo)信息經(jīng)由粗線(xiàn)繪制控制器102被傳送至圓繪 制引擎104。稍后給出更進(jìn)一步的描述。
請(qǐng)注意,圖1僅顯示與本發(fā)明相關(guān)的組件,并且圖1的架構(gòu)用以說(shuō)明本 發(fā)明,而非用以限定本發(fā)明。也就是說(shuō),假設(shè)得到的結(jié)果大致相同,貝帳不 脫離本發(fā)明的精神和范圍內(nèi),還可具有其它架構(gòu)。更進(jìn)一步地說(shuō),粗線(xiàn)繪制 控制器102、圓繪制引擎104、多邊形填充引擎106與線(xiàn)繪制引擎108的任何 一者,可以通過(guò)硬件、軟件或二者的結(jié)合來(lái)實(shí)現(xiàn)。
請(qǐng)一并參閱圖1與圖2。圖2為根據(jù)本發(fā)明一實(shí)施方式的粗線(xiàn)繪制方法的 流程圖。假設(shè)得到的結(jié)果大致相同,則顯示在圖2的步驟并非局限于圖2所 示的特定順序。粗線(xiàn)繪制方法的范例包含下列步驟
步驟200:開(kāi)始。
步驟202:檢査是否需要執(zhí)行點(diǎn)粗線(xiàn)繪制,以繪制目標(biāo)點(diǎn)粗線(xiàn)。若是,則 執(zhí)行步驟204;否則,執(zhí)行步驟214。
步驟204:確定沿著線(xiàn)路的線(xiàn)段。此線(xiàn)路對(duì)應(yīng)于目標(biāo)點(diǎn)粗線(xiàn)。 步驟205:執(zhí)行圓繪制操作,以繪制對(duì)應(yīng)于線(xiàn)段的一個(gè)或多個(gè)圓。
步驟206:根據(jù)圓繪制操作的繪制結(jié)果,確定多邊形頂點(diǎn)。
步驟208:執(zhí)行多邊形填充操作,以填充由多邊形頂點(diǎn)定義的多邊形區(qū)域,用以繪制對(duì)應(yīng)于線(xiàn)段的粗線(xiàn)。
步驟210:將步驟208中執(zhí)行的多邊形填充操作的繪制結(jié)果儲(chǔ)存至幀緩沖
器o
步驟212:檢查是否到達(dá)目標(biāo)點(diǎn)粗線(xiàn)的終端。若是,則執(zhí)行步驟220;否
則,執(zhí)行步驟204,以確定下一線(xiàn)段。
步驟214:執(zhí)行圓繪制操作,以繪制對(duì)應(yīng)于目標(biāo)粗線(xiàn)的一個(gè)或多個(gè)圓。
步驟215:根據(jù)圓繪制操作的繪制結(jié)果,確定多個(gè)多邊形頂點(diǎn)。
步驟216:執(zhí)行多邊形填充操作,以填充由多邊形頂點(diǎn)定義的多邊形區(qū)域,
用以繪制目標(biāo)粗線(xiàn)。
步驟218:將步驟216中執(zhí)行的多邊形填充操作的繪制結(jié)果儲(chǔ)存至幀緩沖器。
步驟220:結(jié)束。
在步驟200中,粗線(xiàn)繪制流程開(kāi)始。本發(fā)明揭示的粗線(xiàn)繪制方法的范例, 支持繪制點(diǎn)粗線(xiàn)。點(diǎn)粗線(xiàn)包含多個(gè)粗線(xiàn)。因此,假如需要繪制目標(biāo)點(diǎn)粗線(xiàn)(步 驟202),則粗線(xiàn)控制器102將開(kāi)啟線(xiàn)繪制引擎108,以定位沿著線(xiàn)路的各線(xiàn) 段,此線(xiàn)路對(duì)應(yīng)于目標(biāo)點(diǎn)粗線(xiàn)(步驟204)。請(qǐng)參閱圖3。圖3為圖2中步驟 204的詳細(xì)流程圖。線(xiàn)段確定程序包含下列步驟
步驟300:開(kāi)始。
步驟30h定位目標(biāo)粗線(xiàn)的線(xiàn)路上的未檢査點(diǎn)(un-examinedpoint),以開(kāi)
始線(xiàn)段確定程序。例如,假如是首輪執(zhí)行線(xiàn)段確定程序,則選擇線(xiàn)路上的起 點(diǎn)或終點(diǎn);否貝ij,選擇緊接于(immediately following)檢査點(diǎn)(examined point)
的未檢查點(diǎn),以執(zhí)行下一輪的線(xiàn)段確定程序。
步驟302:位于目標(biāo)點(diǎn)粗線(xiàn)的線(xiàn)路上的目前的檢査點(diǎn)是否為待繪制的點(diǎn)? 若是,執(zhí)行步驟308;否則執(zhí)行步驟304。
步驟304:檢査是否到達(dá)點(diǎn)粗線(xiàn)的終端。若是,執(zhí)行步驟320;否則,執(zhí) 行步驟306。步驟306:前移(advance)目前檢查點(diǎn)至下一個(gè)未檢查點(diǎn),接著,執(zhí)行 步驟302。
步驟308:將目前檢査點(diǎn)記錄為線(xiàn)段的第一端(例如,起點(diǎn))。此線(xiàn)段為 沿著目標(biāo)點(diǎn)粗線(xiàn)的線(xiàn)路的線(xiàn)段。
步驟310:檢查是否到達(dá)點(diǎn)粗線(xiàn)的終端。若是,執(zhí)行步驟317;否則,執(zhí) 行步驟312。
步驟312:前移目前檢査點(diǎn)至下一個(gè)未檢査點(diǎn)。
步驟314:目前檢查點(diǎn)是否為待繪制的點(diǎn)?若是,執(zhí)行步驟316;否則,
執(zhí)行步驟318。
步驟316:檢査是否到達(dá)點(diǎn)粗線(xiàn)的終端。若是,執(zhí)行步驟317;否則,執(zhí)
行步驟312。
步驟317:將目前檢查點(diǎn)記錄為線(xiàn)段的第二端(例如,終點(diǎn))。此線(xiàn)段為
沿著目標(biāo)點(diǎn)粗線(xiàn)的線(xiàn)路的線(xiàn)段。執(zhí)行步驟320。
步驟318:將目前檢查點(diǎn)前面最接近(immediately proceeding)的檢查點(diǎn) 記錄為線(xiàn)段的第二端(例如,終點(diǎn))。此線(xiàn)段為沿著目標(biāo)點(diǎn)粗線(xiàn)的線(xiàn)路的線(xiàn)段。
步驟320:結(jié)束。
線(xiàn)段確定程序由線(xiàn)繪制引擎108按照逐點(diǎn)方式(point-by-point fashion) (即,逐像素方式(pixel-by-pixel fashion))執(zhí)行。步驟300中,線(xiàn)段確定程 序開(kāi)始。步驟301中,假如是首輪辨別沿著目標(biāo)點(diǎn)粗線(xiàn)的線(xiàn)路的線(xiàn)段,則選 擇線(xiàn)路的起點(diǎn)或終點(diǎn)作為目前檢查點(diǎn)。
請(qǐng)一并參閱圖3與圖4。圖4為位于目標(biāo)點(diǎn)粗線(xiàn)的線(xiàn)路上的多個(gè)點(diǎn)的示意 圖。在圖4中,屬于目標(biāo)點(diǎn)粗線(xiàn)的線(xiàn)段的待繪制的點(diǎn)由實(shí)線(xiàn)(solid line)表示; 而其它不會(huì)被繪制的點(diǎn)由虛線(xiàn)(brokenline)表示。如所示,最初,起點(diǎn)PSTART 與終點(diǎn)Pi^D其中之一為未檢查點(diǎn)。因此,對(duì)于首輪線(xiàn)段確定程序,假如選擇
起點(diǎn)PSTART作為初始檢査點(diǎn),則線(xiàn)路L上起點(diǎn)PsTART后面的點(diǎn),將依據(jù)方向 Dj皮檢查。相似的,假如選擇終點(diǎn)PEND作為初始檢査點(diǎn),貝lj線(xiàn)路L上終點(diǎn)Pend后面的點(diǎn),將依據(jù)方向D2被檢查,方向D2與方向D,相反。假設(shè)在步驟
301,選擇起點(diǎn)PsTAKT,則在步驟302中,檢查起點(diǎn)PsTAKT是否為待繪制的點(diǎn)。 也就是說(shuō),步驟302檢査起點(diǎn)PsTAKT是否屬于對(duì)應(yīng)于目標(biāo)點(diǎn)粗線(xiàn)的粗線(xiàn)線(xiàn)段 的線(xiàn)段。在此實(shí)施方式中,假如起點(diǎn)PsTART屬于將被繪制的粗線(xiàn)線(xiàn)段,則在
步驟308中,將其記錄為線(xiàn)段的第一端(例如,起點(diǎn))。接著,執(zhí)行步驟310。 假如目前檢查點(diǎn)為線(xiàn)路的終端,則在步驟317中,同樣將目前檢查點(diǎn)記錄為 辨別出的線(xiàn)段的終點(diǎn)。然后,在步驟320,線(xiàn)段確定程序完成。
在本實(shí)施方式中,因?yàn)槠瘘c(diǎn)PSTART并非線(xiàn)路的終端,執(zhí)行后面的步驟312。
由于采用逐點(diǎn)搜尋方式,步驟312中,選擇并檢查下一個(gè)點(diǎn)Pp點(diǎn)P,為未檢 查點(diǎn)且不是終點(diǎn)PEM3。因?yàn)槟壳皺z查點(diǎn)P!仍屬于待繪制的線(xiàn)段,繼續(xù)檢查后 面的未檢查點(diǎn)。當(dāng)目前檢査點(diǎn)前移到點(diǎn)P3,步驟314發(fā)現(xiàn)點(diǎn)P3并非待繪制的
點(diǎn)。因此,在步驟318,線(xiàn)段確定程序辨別出目前檢査點(diǎn)P3之前最接近的點(diǎn) P2,作為線(xiàn)段的第二端(例如,終點(diǎn))。當(dāng)獲得沿著目標(biāo)點(diǎn)粗線(xiàn)的線(xiàn)路L的線(xiàn) 段的起點(diǎn)與終點(diǎn),執(zhí)行圖2顯示的步驟205到步驟210,以繪制粗線(xiàn)。此粗線(xiàn)
對(duì)應(yīng)于由所辨別出的起點(diǎn)與終點(diǎn)(例如,點(diǎn)PSTAKT與點(diǎn)P2)所定義的線(xiàn)段。
因?yàn)檫€未到達(dá)目標(biāo)點(diǎn)粗線(xiàn)的終端(步驟212),粗線(xiàn)繪制操作繼續(xù)進(jìn)行, 處理對(duì)應(yīng)于步驟204中所找到的后面線(xiàn)段的粗線(xiàn)。請(qǐng)?jiān)俅螀㈤唸D3的流程與 圖4的示意圖。步驟301選擇未檢查點(diǎn)P3作為第二輪線(xiàn)段確定程序的初始點(diǎn)。 接著,執(zhí)行上述辨別線(xiàn)段的流程,可相應(yīng)辨別出另一線(xiàn)段的起點(diǎn)與終點(diǎn)。由 于本領(lǐng)域的技術(shù)人員可輕易了解圖3的流程圖中各步驟的操作,出于簡(jiǎn)潔的 目的,由所揭示的線(xiàn)段確定程序支持的其它明顯可操作情況的敘述在此略過(guò)。 此外,圖3所示的流程圖僅為說(shuō)明本發(fā)明。假設(shè)得到的結(jié)果大致相同,則顯 示在圖3的步驟并不局限于圖3所示的特定順序。
在線(xiàn)繪制引擎108確定沿著點(diǎn)粗線(xiàn)的線(xiàn)路的一段線(xiàn)段的起點(diǎn)與終點(diǎn)之后, 粗線(xiàn)繪制控制器102通知圓繪制引擎104,開(kāi)始根據(jù)線(xiàn)段的起點(diǎn)與終點(diǎn)的坐標(biāo) 信息,執(zhí)行圓繪制操作。起點(diǎn)與終點(diǎn)的坐標(biāo)信息由粗線(xiàn)繪制控制器102辨別出。請(qǐng)參閱圖5。圖5為圖2中步驟205的詳細(xì)流程圖。假設(shè)得到的結(jié)果大致 相同,則顯示在圖5的步驟并不局限于圖5所示的特定順序。圓繪制程序包 含下列步驟
步驟500:開(kāi)始。
步驟502:粗線(xiàn)端是否需要結(jié)束端點(diǎn)(end cap) 此粗線(xiàn)端對(duì)應(yīng)于待繪制 的粗線(xiàn)的線(xiàn)路的起點(diǎn)。若是,執(zhí)行步驟504;否則,執(zhí)行步驟516。
步驟504:執(zhí)行圓繪制操作,根據(jù)作為中心點(diǎn)的起點(diǎn)與等于L772」的半徑,
繪制特定圓,其中,W代表下方值運(yùn)算(floor operation),并且T代表粗線(xiàn)的 寬度。
步驟506:計(jì)算對(duì)應(yīng)于中心點(diǎn)與參考向量的第一量化法向量(quantized normal vector)。參考向量由粗線(xiàn)的線(xiàn)路上的起點(diǎn)與終點(diǎn)定義。第一量化法向 量位于特定圓的中心點(diǎn)與圓周上的一點(diǎn)之間。假如可以在特定圓的中心點(diǎn)與 圓周上的一點(diǎn)之間找到第一理想法向量,則第一量化法向量與第一理想法向 量相匹配;否則,由于量化誤差,第一量化法向量與第一理想法向量之間存 在夾角。
步驟508:記錄第一量化法向量與第一誤差索引值(error index value)。
第一誤差索引值表示第一量化法向量引起的寬度誤差。
步驟509:填充特定圓,并且將填充特定圓的繪制結(jié)果儲(chǔ)存至幀緩沖器。 步驟510:另一粗線(xiàn)端是否需要結(jié)束端點(diǎn)?此另一粗線(xiàn)端對(duì)應(yīng)于待繪制的
粗線(xiàn)的線(xiàn)路的終點(diǎn)。若是,執(zhí)行步驟512;否則,執(zhí)行步驟532。
步驟512:執(zhí)行圓繪制操作,根據(jù)作為中心點(diǎn)的起點(diǎn)與等于^/2」的半徑, 繪制特定圓。
步驟514:填充特定圓,并且將填充特定圓的繪制結(jié)果儲(chǔ)存至幀緩沖器。 執(zhí)行步驟532。
步驟516:另一粗線(xiàn)端是否需要結(jié)束端點(diǎn)?此另一粗線(xiàn)端對(duì)應(yīng)于待繪制的 粗線(xiàn)的線(xiàn)路的終點(diǎn)。若是,執(zhí)行步驟518;否則,執(zhí)行步驟526。步驟518:執(zhí)行圓繪制操作,根據(jù)作為中心點(diǎn)的起點(diǎn)與等于^/2」的半徑, 繪制特定圓。
步驟520:計(jì)算對(duì)應(yīng)于中心點(diǎn)與參考向量的第一量化法向量。參考向量由 起點(diǎn)與終點(diǎn)定義。第一量化法向量位于特定圓的中心點(diǎn)與圓周上的一點(diǎn)之間。 假如可以在特定圓的中心點(diǎn)與圓周上的一點(diǎn)之間找到第一理想法向量,則第 一量化法向量與第一理想法向量相匹配;否則,由于量化誤差,第一量化法
向量與第一理想法向量之間存在夾角。
步驟522:記錄第一量化法向量與第一誤差索引值。第一誤差索引值表示
第一量化法向量引起的寬度誤差。
步驟524:填充特定圓,并且將填充特定圓的繪制結(jié)果儲(chǔ)存至幀緩沖器。 執(zhí)行步驟532。
步驟526:執(zhí)行圓繪制操作,根據(jù)作為中心點(diǎn)的起點(diǎn)與等于L"^的半徑,
繪制特定圓;或者根據(jù)作為中心點(diǎn)的終點(diǎn)與等于^/2」的半徑,繪制特定圓。
步驟528:計(jì)算對(duì)應(yīng)于中心點(diǎn)與參考向量的第一量化法向量。參考向量由
起點(diǎn)與終點(diǎn)定義。第一量化法向量位于特定圓的中心點(diǎn)與圓周上的一點(diǎn)之間。
假如可以在特定圓的中心點(diǎn)與圓周上的一點(diǎn)之間找到第一理想法向量,則第
一量化法向量與第一理想法向量相匹配;否則,由于量化誤差,第一量化法 向量與第一理想法向量之間存在夾角。
步驟530:記錄第一量化法向量與第一誤差索引值。第一誤差索引值表示 第一量化法向量引起的寬度誤差。
步驟532:待繪制的粗線(xiàn)是否具有偶數(shù)寬度?若是,執(zhí)行步驟534;否則, 執(zhí)行步驟540。
步驟534:執(zhí)行圓繪制操作,以起點(diǎn)與終點(diǎn)其中之一作為中心點(diǎn),并根據(jù) 等于[//2_1」的半徑,繪制另一特定圓。
步驟536:計(jì)算對(duì)應(yīng)于中心點(diǎn)與參考向量的第二法向量。參考向量由起點(diǎn)與終點(diǎn)定義。第二量化法向量位于前述另一特定圓的中心點(diǎn)與圓周上的一點(diǎn) 之間。假如可以在此另一特定圓的中心點(diǎn)與圓周上的一點(diǎn)之間找到第二理想 法向量(與前述的任何第一法向量都不相同),則第二量化法向量與第二理想 法向量相匹配;否則,由于量化誤差,第二量化法向量與第二理想法向量之
間存在夾角。
步驟538:記錄第二量化法向量與第二誤差索引值。第二誤差索引值表示
第二量化法向量引起的寬度誤差。
步驟540:結(jié)束。
步驟504到509與步驟518到524的操作相似,唯一的不同之處在于步 驟504與步驟518所使用的中心點(diǎn)不同。在本發(fā)明一實(shí)施方式中,采用基于 像素(pkd-based)的粗線(xiàn)繪制方案,并且圓繪制程序需要半徑為整數(shù)值,以繪 制圓。因此,在步驟504與步驟518中,使用粗線(xiàn)寬度的一半的下方值(floor value)來(lái)定義圓繪制所需的半徑。在步驟506與步驟520中,估計(jì)第一量化 法向量。
請(qǐng)參閱圖6。圖6為對(duì)應(yīng)于具有不同半徑的圓的量化法向量示意圖。中心 點(diǎn)PcEWTm可對(duì)應(yīng)于待繪制的粗線(xiàn)的起點(diǎn)(步驟504),或?qū)?yīng)于待繪制的粗線(xiàn) 的終點(diǎn)(步驟518)。請(qǐng)注意,對(duì)于點(diǎn)粗線(xiàn)的繪制,中心點(diǎn)PcE訓(xùn)R可為步驟 204中由線(xiàn)繪制引擎108辨別的線(xiàn)段的起點(diǎn)或終點(diǎn)。然而,對(duì)于正常的粗線(xiàn)繪 制(步驟518至步驟528),并不需要由線(xiàn)繪制引擎108確定前述的起點(diǎn)與終 點(diǎn)。
圖6中,圓d的半徑等于L772」。因?yàn)閳Ad的圓周包含固定大小的點(diǎn)(例 如,像素),所以當(dāng)確定參考向量Vo的法向量時(shí),可能產(chǎn)生量化誤差。參考 向量V。由待繪制的粗線(xiàn)的起點(diǎn)(例如,PCENTER)與終點(diǎn)(例如,P,)定義。 如圖所示,第一理想法向量Va所指向的點(diǎn)/像素,皆不包含在圓d的圓周上。
因此,選擇最接近第一理想法向量Va的向量、作為第一量化法向量V1 (步
驟506與步驟520)。由于量化誤差,在第一理想法向量Va與第一量化法向量V,之間出現(xiàn)寬度誤差Ep除記錄第一量化法向量VJ卜,圓繪制引擎104還記 錄代表寬度誤差Ei的第一誤差索引值(步驟508與步驟522)。另外,假如在 某些情況下,粗線(xiàn)的一端需要顯示結(jié)束端點(diǎn),則圓繪制引擎104還執(zhí)行下列 操作,以支持此特性填充所繪制的圓(步驟504與步驟518),接著,將相 應(yīng)繪制結(jié)果儲(chǔ)存至幀緩沖器110 (步驟509與步驟524)。因此,當(dāng)根據(jù)儲(chǔ)存 在幀緩沖器110的像素?cái)?shù)據(jù),將粗線(xiàn)顯示在顯示屏幕上時(shí),粗線(xiàn)的端點(diǎn)沒(méi)有 銳利的邊緣。
在粗線(xiàn)的兩端皆需要結(jié)束端點(diǎn)的情況,假如繪制、填充與儲(chǔ)存對(duì)應(yīng)于中 心點(diǎn)pceoter的圓之后,獲得第一量化法向量V^則在繪制對(duì)應(yīng)于點(diǎn)p'的另一 個(gè)圓后,不需要找到另一量化法向量。閱讀下列段落后,即可以明白理由, 故詳細(xì)敘述在此略過(guò)。
在粗線(xiàn)的兩端皆不需要結(jié)束端點(diǎn)的情況,圓繪制引擎104僅需要繪制一 個(gè)圓(步驟526),接著,計(jì)算并儲(chǔ)存第一量化法向量(步驟528與步驟530)。
其中,該圓的中心點(diǎn)pcewtek可對(duì)應(yīng)于待繪制的粗線(xiàn)的起點(diǎn)與終點(diǎn)二者之一。 相似的,估計(jì)第一量化法向量K與第一理想法向量Va之間的寬度誤差,并通
過(guò)圓繪制引擎106儲(chǔ)存此寬度誤差至幀緩沖器110 (步驟530)。因?yàn)椴恍枰?為粗線(xiàn)的各端添加結(jié)束端點(diǎn),前述填充圓的操作與儲(chǔ)存對(duì)應(yīng)繪制結(jié)果至幀緩 沖器的操作在此省略。
當(dāng)粗線(xiàn)的寬度為奇數(shù)時(shí),圓繪制程序在獲得第一量化法向量與第一誤差 索引值后結(jié)束。第一量化法向量與第一誤差索引值用于后續(xù)確定多邊形頂點(diǎn) 的步驟(例如,圖2顯示的步驟206)。然而,當(dāng)粗線(xiàn)的寬度為偶數(shù)時(shí),圖5 所示的流程繼續(xù)進(jìn)行步驟534到步驟538。如上所述,圓繪制引擎104所使用 的圓繪制算法需要圓半徑為整數(shù)值。另外,中心點(diǎn)Pceoter具有固定大小。因 此,假設(shè)粗線(xiàn)的寬度等于4 (T=4),接著,圓繪制操作需要等于1.5的半徑,
以根據(jù)中心點(diǎn)pcenter繪制圓。這違反了圓繪制引擎104的規(guī)格。因此,繪制
另一個(gè)圓C2,以解決這一問(wèn)題。其中,根據(jù)步驟534,設(shè)定半徑為[(T/2)-l]。如圖6所示,沿著第二理想法向量Vb的方向,存在位于圓C2的圓周上的一點(diǎn)。 因此,選擇中心點(diǎn)PCENTER與上述點(diǎn)之間的向量作為第二量化法向量V2 。然而, 第二理想法向量Vb所指向的點(diǎn),皆不包含在圓C2的圓周上的情況下,應(yīng)用前
述確定第一量化法向量v,的方法,來(lái)定位第二量化法向量v2。由于量化誤差,
第二理想法向量Vb與第二量化法向量V2之間存在寬度誤差E2。除記錄第二 量化法向量V2外,圓繪制引擎104還記錄代表寬度誤差E2的第二誤差索引值 (步驟538)。為更好地揭示上述操作,在此給出一個(gè)范例。假設(shè)粗線(xiàn)的寬度 等于4 (T=4),圓d的半徑設(shè)定為2,并且圓C2的半徑設(shè)定為1。因此,第
一理想法向量Va與第二理想法向量Vb的長(zhǎng)度的和等于4。以這種方式,請(qǐng)參
閱圖6所示的示意圖,由第一量化法向量K與第二量化法向量V2分別指向 的點(diǎn)之間的距離接近待繪制的粗線(xiàn)的理想寬度。
請(qǐng)注意,圖6所示的向量方向僅為說(shuō)明本發(fā)明,而并非限制本發(fā)明。更 進(jìn)一步說(shuō),圓C,與圓C2并非局限于圖6所示的具有共同的中心點(diǎn)PCENTER。 在另一種設(shè)計(jì)中,圓繪制引擎104以點(diǎn)P'為中心點(diǎn),繪制輔助圓C2,根據(jù)幾
何特性,獲得第二量化法向量V2,與相同的寬度誤差E2。因?yàn)楸绢I(lǐng)域的技術(shù)人
員應(yīng)可根據(jù)圖6描繪的示意圖,輕易了解兒何特性,故出于簡(jiǎn)潔目的,詳細(xì) 的敘述在此省略。更進(jìn)一步,請(qǐng)參閱圖5所示的流程圖,在處理對(duì)應(yīng)于終點(diǎn) 的圓(步驟512到步驟514)之前,執(zhí)行對(duì)應(yīng)于起點(diǎn)的圓的操作(步驟504到 步驟509)。然而,經(jīng)過(guò)適當(dāng)?shù)男薷?,也可反向操作。這仍符合本發(fā)明的精神。
假如粗線(xiàn)具有奇數(shù)寬度,則獲得第一量化法向量與第一誤差索引值?;?者,假如粗線(xiàn)具有偶數(shù)寬度,則獲得第一量化法向量、第二量化法向量、第 一誤差索引值與第二誤差索引值。之后,粗線(xiàn)繪制控制器102指示多邊形填 充引擎106執(zhí)行后面的數(shù)據(jù)處理。請(qǐng)參閱圖7。圖7為圖2中步驟206的詳細(xì) 流程圖。假設(shè)得到的結(jié)果大致相同,則顯示在圖7的步驟并非局限于圖7所 示的特定順序。多邊形頂點(diǎn)確定程序包含下列步驟
步驟700:開(kāi)始。步驟702:檢查第一誤差索引值是否小于第一臨界值。若是,執(zhí)行步驟
706;否則,執(zhí)行步驟704。
步驟704:調(diào)整第一量化法向量,以便減少寬度誤差。
步驟706:待繪制的粗線(xiàn)是否具有偶數(shù)寬度?若是,執(zhí)行步驟708;否則,
執(zhí)行步驟714。
步驟708:檢査第二誤差索引值是否小于第二臨界值。若是,執(zhí)行步驟
712,否則,執(zhí)行步驟710。
步驟710:調(diào)整第二量化法向量,以便減少寬度誤差。
步驟712:根據(jù)第一量化法向量、第二量化法向量、以及待繪制的粗線(xiàn)的
線(xiàn)路的起點(diǎn)與終點(diǎn),確定多個(gè)多邊形頂點(diǎn)(例如,四個(gè)多邊形頂點(diǎn))。執(zhí)行步
驟716。
步驟714:根據(jù)第一量化法向量以及待繪制的粗線(xiàn)的線(xiàn)路的起點(diǎn)與終點(diǎn),
確定多個(gè)多邊形頂點(diǎn)。
步驟716:結(jié)束。
在此實(shí)施方式中,步驟704與步驟710分別精細(xì)調(diào)整(finetune)第一量 化法向量與第二量化法向量。執(zhí)行步驟702與步驟708用以確定是否應(yīng)該啟 用補(bǔ)償機(jī)制。根據(jù)圖7所示的流程,多邊形填充引擎106首先檢查代表寬度 誤差的第一誤差索引值(例如,圖6所示的E》是否小于第一臨界值。也就 是說(shuō),第一臨界值定義了一個(gè)容許范圍(tolerance range),并且當(dāng)?shù)谝徽`差索 引值表示的寬度誤差可以被接受時(shí),不需要調(diào)整圓繪制引擎104最初給出的 第一量化法向量。然而,當(dāng)?shù)谝徽`差索引值大于或等于第一臨界值時(shí),意味 著由于過(guò)度的寬度誤差,粗線(xiàn)質(zhì)量可能大幅降低。此時(shí),多邊形填充引擎106 調(diào)整第一量化法向量,以降低寬度誤差。例如,假設(shè)圖6中,向量Vn與第一 理想法向量Va之間的寬度誤差小于Ep則多邊形填充引擎106選擇向量V 作為第一量化法向量。較佳的,精細(xì)調(diào)整第一量化法向量,以使調(diào)整后的第 一量化法向量與第一理想法向量Va之間的寬度誤差小于第一臨界值。然而,這并非限制本發(fā)明。也就是說(shuō),只要通過(guò)調(diào)整第一量化法向量,減少目前寬 度誤差,就可以提高粗線(xiàn)質(zhì)量。
接著,如上所述,假如待繪制的粗線(xiàn)的寬度等于偶數(shù),意味著圓繪制引
擎104還提供第二誤差索引值與第二量化法向量。多邊形填充引擎106還被 設(shè)置為檢査代表寬度誤差(例如,圖6所示的E2)的第二誤差索引值是否小
于第二臨界值。請(qǐng)注意,第二臨界值可根據(jù)設(shè)計(jì)需求,被設(shè)定為等于第一臨 界值,或者其它任何允許的值。相似的,第二臨界值用于定義一個(gè)容許范圍。
當(dāng)?shù)诙`差索引值表示的寬度誤差可以被接受時(shí),不需要調(diào)整圓繪制引擎104 最初給出的第二量化法向量;否則,多邊形填充引擎106根據(jù)前述應(yīng)用于第 一量化法向量的調(diào)整規(guī)則,調(diào)整第二量化法向量。例如,多邊形填充引擎106 根據(jù)向量V21更新第二量化法向量。
如圖7所示,當(dāng)粗線(xiàn)寬度等于奇數(shù)時(shí),多邊形頂點(diǎn)的確定需要第一量化 法向量以及粗線(xiàn)的起點(diǎn)與終點(diǎn)。請(qǐng)參閱圖8。圖8為當(dāng)粗線(xiàn)寬度等于奇數(shù)時(shí), 定位多個(gè)多邊形頂點(diǎn)的范例。這個(gè)范例中,向量V—1代表前述圓繪制引擎104 最初給出的第一量化法向量,或者經(jīng)由多邊形填充引擎106精細(xì)調(diào)整后的第 一量化法向量。由于幾何特性,根據(jù)向量V—1,可很快得知其它的向量V—2、 V—3與V—4。如圖所示,向量V一2與向量V—1相反,向量V—3與向量V—1 平行,并且向量V一4與向量V—3相反。參考起點(diǎn)Pstart、終點(diǎn)Pend以及向量 V一l、 V—2、 V_3、 V—4,可輕易得到四個(gè)多邊形頂點(diǎn)PV_1、 PV—2、 PV—3與 PV_4。
當(dāng)粗線(xiàn)寬度等于偶數(shù)時(shí),多邊形頂點(diǎn)的確定需要第一量化法向量、第二 量化法向量以及粗線(xiàn)的起點(diǎn)與終點(diǎn)。請(qǐng)參閱圖9。圖9為當(dāng)粗線(xiàn)寬度等于偶數(shù) 時(shí),定位多個(gè)多邊形頂點(diǎn)的范例。此范例中,向量VJ'代表前述圓繪制引擎 104最初給出的第一量化法向量,或者經(jīng)由多邊形填充引擎106精細(xì)調(diào)整后的 第一量化法向量,并且向量V一2'代表前述圓繪制引擎104最初給出的第二量 化法向量,或者經(jīng)由多邊形填充引擎106精細(xì)調(diào)整后的第二量化法向量。由于幾何特性,根據(jù)向量V一l'與V一2',可很快得知其它向量V—3'與V一4'。如 圖所示,向量V一3'與向量V—l'平行,并且向量V一4'與向量V—2'平行。參考 起點(diǎn)Pstart、終點(diǎn)Pend以及向量V—1,、 V_2,、 V—3,、 V—4,,可輕易得到四個(gè) 多邊形頂點(diǎn)PV—1,、 PV一2'、 PV—3'與PV—4'。
成功確定多邊形頂點(diǎn)之后,多邊形填充引擎106開(kāi)始執(zhí)行多邊形填充操 作,以填充由辨別出的頂點(diǎn)所定義的多邊形區(qū)域。其中,辨別出的頂點(diǎn)如圖8 所示的PV一1、 PV一2、 PV一3與PV—4,或者如圖9所示的PV—1'、 PV一2,、 PV—3, 與PV—4,。接著,多邊形填充引擎106將填充多邊形區(qū)域的繪制結(jié)果儲(chǔ)存至幀 緩沖器110,從而完成粗線(xiàn)繪制操作(步驟208到步驟210)。
閱讀上述對(duì)步驟205到步驟210的描述之后,本領(lǐng)域的技術(shù)人員應(yīng)可輕 易了解關(guān)于步驟214到步驟218的相應(yīng)操作。出于簡(jiǎn)潔的目的,更進(jìn)一步的 描述在此省略。另外,對(duì)于點(diǎn)粗線(xiàn)的繪制,每當(dāng)步驟204辨別出一條新線(xiàn)段, 則圖2所示的流程執(zhí)行一遍步驟206到步驟210。然而,這并非用以限定本發(fā) 明。例如,基于上述描述,可修改線(xiàn)段確定程序,以定位沿著目標(biāo)點(diǎn)粗線(xiàn)的 線(xiàn)路的所有可能的線(xiàn)段。接著,點(diǎn)粗線(xiàn)繪制操作參考這些被辨別出的線(xiàn)段的 起點(diǎn)與終點(diǎn)的坐標(biāo),以執(zhí)行后面的多邊形頂點(diǎn)確定程序與多邊形填充操作,
以繪制目標(biāo)點(diǎn)粗線(xiàn)中的粗線(xiàn)段。這也符合本發(fā)明的精神。
請(qǐng)參閱圖10。圖10為根據(jù)本發(fā)明第二實(shí)施方式的粗線(xiàn)繪制裝置1000的 方塊示意圖。此實(shí)施方式中,粗線(xiàn)繪制裝置1000包含粗線(xiàn)繪制控制器1002、 圖案繪制引擎(例如,本實(shí)施方式的規(guī)則多邊形繪制引擎1004)、多邊形填充 引擎1006、線(xiàn)繪制引擎1008與幀緩沖器1010。圖1與圖10所示的實(shí)施方式 中,相同名稱(chēng)的組件具有相似的操作與功能。更進(jìn)一步的描述在此省略。圖l 與圖10所示的粗線(xiàn)繪制裝置主要的差別在于,粗線(xiàn)繪制裝置1000采用規(guī)則 多邊形繪制引擎1004。本領(lǐng)域的技術(shù)人員應(yīng)可了解, 一個(gè)圓可由N邊的規(guī)則 多邊形近似而成。因此,對(duì)圖5中的流程稍做改動(dòng),即可獲得由規(guī)則多邊形 繪制引擎1004所執(zhí)行的多邊形繪制程序。例如,本實(shí)施方式中,上述術(shù)語(yǔ)"半徑"可為內(nèi)徑(inradius)(例如,待繪制的規(guī)則多邊形的中心點(diǎn)與規(guī)則多邊形 一條邊的中點(diǎn)(midpoint)之間的距離)或者外接圓半徑(circumradius)(例 如,規(guī)則多邊形的中心點(diǎn)與任一頂點(diǎn)之間的距離)。由規(guī)則多邊形繪制引擎 1004繪制規(guī)則多邊形之后,規(guī)則多邊形可以根據(jù)圓繪制引擎104所使用的方 法,計(jì)算后續(xù)數(shù)據(jù)處理所需要的量化法向量與誤差索引值。例如,檢查規(guī)則 多邊形各條邊上的點(diǎn)(例如,像素),以確定所需要的量化法向量。
本發(fā)明的上述實(shí)施方式中,圓繪制引擎104與規(guī)則多邊形繪制引擎1004 被設(shè)計(jì)為利用需要半徑為整數(shù)值的繪制算法。然而,這并非用以限定本發(fā)明。 在本發(fā)明的其它設(shè)計(jì)中,圓繪制引擎104與規(guī)則多邊形繪制引擎1004可被設(shè) 定為利用其它不需要半徑為整數(shù)值的繪制算法。因此,可相應(yīng)地省略圖5中 的步驟532、 534、 536與538。另外,執(zhí)行步驟704與步驟710以減少或最小 化寬度誤差。然而,這一特性是可選擇的。也就是說(shuō),未啟用任何寬度誤差 補(bǔ)償?shù)拇志€(xiàn)繪制裝置仍屬于本發(fā)明的范圍。
為更好的顯示現(xiàn)有技術(shù)繪制方案與本發(fā)明所揭示的繪制方案之間的差 別,請(qǐng)參閱圖11。圖11為本發(fā)明揭示的繪制方法與現(xiàn)有技術(shù)繪制方法繪制出 的粗線(xiàn)示意圖。圖11的子示意圖(a)中,兩條寬度皆等于5的粗線(xiàn)為根據(jù)上 述所揭示的范例繪制方法所繪制。圖11的子示意圖(b)中,兩條寬度皆等 于5的粗線(xiàn)為根據(jù)現(xiàn)有技術(shù)的繪制方法,通過(guò)重復(fù)繪制單線(xiàn)所繪制。相較于 現(xiàn)有技術(shù)方法,所揭示的范例繪制方法提供了一種繪制更高質(zhì)量粗線(xiàn)的簡(jiǎn)單 方法??傊褂帽景l(fā)明的粗線(xiàn)繪制方法,可以避免使用現(xiàn)有技術(shù)方法所引 起的問(wèn)題。
雖然本發(fā)明已以實(shí)施方式揭示如上,但是對(duì)于本領(lǐng)域的技術(shù)人員,依據(jù) 本發(fā)明實(shí)施方式的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜 上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1. 一種粗線(xiàn)繪制方法,其特征在于,該方法包含根據(jù)待繪制的粗線(xiàn)的寬度與對(duì)應(yīng)于該粗線(xiàn)的線(xiàn)路的起點(diǎn)與終點(diǎn)至少之一,繪制至少一預(yù)定圖案;根據(jù)所述的預(yù)定圖案,確定多個(gè)多邊形頂點(diǎn);以及執(zhí)行多邊形填充操作,以填充由所述的多個(gè)多邊形頂點(diǎn)定義的多邊形區(qū)域,并且將填充所述的多邊形區(qū)域的繪制結(jié)果儲(chǔ)存至幀緩沖器。
2. 如權(quán)利要求1所述的粗線(xiàn)繪制方法,其特征在于,該方法還包含 確定沿著線(xiàn)路的線(xiàn)段,所述的線(xiàn)路對(duì)應(yīng)于點(diǎn)粗線(xiàn);以及 利用所述的線(xiàn)段的兩端,設(shè)定待繪制的所述的粗線(xiàn)的所述的起點(diǎn)與終點(diǎn)。
3. 如權(quán)利要求1所述的粗線(xiàn)繪制方法,其特征在于,該繪制至少一預(yù)定圖 案的步驟還包含執(zhí)行圓繪制操作,根據(jù)作為中心點(diǎn)的第一點(diǎn)與由所述的粗線(xiàn)的寬度確定 的第一半徑,繪制至少一第一圓,其中所述的粗線(xiàn)包含所述的第一點(diǎn)與第二 點(diǎn),該第一點(diǎn)與第二點(diǎn)其中的一個(gè)為所述的起點(diǎn),并且該第一點(diǎn)與第二點(diǎn)其 中的另一者為所述的終點(diǎn)。
4. 如權(quán)利要求3所述的粗線(xiàn)繪制方法,其特征在于,所述的粗線(xiàn)的寬度等 于偶數(shù);所述的執(zhí)行圓繪制操作的步驟還包含將第一整數(shù)設(shè)定為等于所述的偶數(shù)的一半,作為所述的第一圓的所述的 第一半徑;將第二整數(shù)設(shè)定為等于所述的偶數(shù)的一半減一,作為第二圓的第二半徑;以及執(zhí)行所述的圓繪制操作,根據(jù)所述的第一半徑、第二半徑與作為中心點(diǎn) 的所述的第一點(diǎn)與第二點(diǎn)至少之一,確定所述的第一圓與第二圓;以及所述的確定所述的多個(gè)多邊形頂點(diǎn)的步驟還包含根據(jù)所述的第一圓的圓周與所述的第二圓的圓周,確定所述的多個(gè)多邊形頂點(diǎn)。
5. 如權(quán)利要求4所述的粗線(xiàn)繪制方法,其特征在于,所述的根據(jù)第一圓的圓周與第二圓的圓周,確定所述的多個(gè)多邊形頂點(diǎn)的步驟還包含根據(jù)由所述的起點(diǎn)與所述的終點(diǎn)定義的參考向量,確定由所述的第一圓 的中心點(diǎn)與所述的第一圓的圓周上一點(diǎn)定義的第一量化法向量;根據(jù)由所述的起點(diǎn)與終點(diǎn)定義的所述的參考向量,確定由所述的第二圓的中心點(diǎn)與所述的第二圓的圓周上一點(diǎn)定義的第二量化法向量;以及根據(jù)所述的第一量化法向量、第二量化法向量、所述的第一點(diǎn)與第二點(diǎn), 確定所述的多個(gè)多邊形頂點(diǎn)。
6. 如權(quán)利要求5所述的粗線(xiàn)繪制方法,其特征在于,所述的根據(jù)所述的第一量化法向量、所述的第二量化法向量、所述的第一點(diǎn)與第二點(diǎn),確定所述 的多個(gè)多邊形頂點(diǎn)的步驟還包含.-當(dāng)?shù)谝徽`差索引值大于或等于第一臨界值時(shí),調(diào)整所述的第一量化法向 量,以減少由所述的第一量化法向量所引起的寬度誤差,所述的第一誤差索引值指示由所述的第一量化法向量所引起的寬度誤差;以及當(dāng)?shù)诙饕`差值大于或等于第二臨界值時(shí),調(diào)整所述的第二量化法向 量,以減少由所述的第二量化法向量所引起的寬度誤差,其中所述的第二誤 差索引值指示由所述的第二量化法向量所引起的寬度誤差。
7. 如權(quán)利要求3所述的粗線(xiàn)繪制方法,其特征在于,所述的確定所述的多 個(gè)多邊形頂點(diǎn)的步驟還包含根據(jù)由所述的起點(diǎn)與所述的終點(diǎn)定義的參考向量,確定由所述的第一點(diǎn) 與所述的第一圓的圓周上一點(diǎn)定義的量化法向量;以及根據(jù)所述的量化法向量、所述的第一點(diǎn)與所述的第二點(diǎn),確定所述的多 個(gè)多邊形頂點(diǎn)。
8. 如權(quán)利要求7所述的粗線(xiàn)繪制方法,其特征在于,所述的根據(jù)所述的量 化法向量、所述的第一點(diǎn)與所述的第二點(diǎn),確定所述的多邊形頂點(diǎn)的步驟還包含當(dāng)誤差索引值大于或等于臨界值時(shí),調(diào)整所述的量化法向量,以減少由 所述的量化法向量所引起的寬度誤差,其中所述的誤差索引值指示由所述的 量化法向量所引起的寬度誤差。
9. 如權(quán)利要求1所述的粗線(xiàn)繪制方法,其特征在于,所述的繪制至少一預(yù) 定圖案的步驟還包含執(zhí)行規(guī)則多邊形繪制操作,根據(jù)作為中心點(diǎn)的第一點(diǎn)與由所述的粗線(xiàn)的 寬度確定的半徑,繪制規(guī)則多邊形,其中所述的粗線(xiàn)包含所述的第一點(diǎn)與第 二點(diǎn),該第一點(diǎn)與第二點(diǎn)其中的一個(gè)為所述的粗線(xiàn)的起點(diǎn),并且該第一點(diǎn)與 第二點(diǎn)其中的另一者為所述的粗線(xiàn)的終點(diǎn)。
10. 如權(quán)利要求9所述的粗線(xiàn)繪制方法,其特征在于,所述的繪制所述的 確定所述的多個(gè)多邊形頂點(diǎn)的步驟還包含根據(jù)所述的規(guī)則多邊形的多條邊,確定所述的多個(gè)多邊形頂點(diǎn)。
11. 一種粗線(xiàn)繪制裝置,其特征在于,該裝置包含 幀緩沖器;圖案繪制引擎,用以根據(jù)待繪制的粗線(xiàn)的寬度與對(duì)應(yīng)于所述的粗線(xiàn)的線(xiàn) 路的起點(diǎn)與終點(diǎn)至少之一,繪制至少一預(yù)定圖案;以及多邊形填充引擎,耦接所述的圖案繪制引擎與所述的幀緩沖器,用以根 據(jù)所述的預(yù)定圖案,確定多個(gè)多邊形頂點(diǎn),執(zhí)行多邊形填充操作,以填充由 所述的多個(gè)多邊形頂點(diǎn)定義的多邊形區(qū)域,并且將該多邊形區(qū)域的繪制結(jié)果 儲(chǔ)存至所述的幀緩沖器。
12. 如權(quán)利要求11所述的粗線(xiàn)繪制裝置,其特征在于,該裝置還包含 線(xiàn)繪制引擎,耦接所述的圖案繪制引擎,用以確定沿著線(xiàn)路的線(xiàn)段,所述的線(xiàn)路對(duì)應(yīng)于點(diǎn)粗線(xiàn),并且利用所述的線(xiàn)段的兩端,設(shè)定待繪制的所述的 粗線(xiàn)的所述的起點(diǎn)與終點(diǎn)。
13. 如權(quán)利要求11所述的粗線(xiàn)繪制裝置,其特征在于,所述的圖案繪制引擎為圓繪制引擎,該圓繪制引擎配置為執(zhí)行圓繪制操作,以根據(jù)作為中心點(diǎn) 的第一點(diǎn)與由所述的粗線(xiàn)的寬度確定的第一半徑,繪制至少一第一圓,其中 所述的粗線(xiàn)包含所述的第一點(diǎn)與第二點(diǎn),該第一點(diǎn)與該第二點(diǎn)其中的一個(gè)為 所述的起點(diǎn),并且該第一點(diǎn)與該第二點(diǎn)其中的另一者為所述的終點(diǎn)。
14. 如權(quán)利要求13所述的粗線(xiàn)繪制裝置,其特征在于,所述的粗線(xiàn)的寬度 等于偶數(shù);所述的圓繪制引擎將第一整數(shù)設(shè)定為所述的第一圓的第一半徑,將第二 整數(shù)設(shè)定為第二圓的第二半徑,并且執(zhí)行所述的圓繪制操作,以根據(jù)所述的 第一半徑、第二半徑與作為中心點(diǎn)的所述的第一點(diǎn)與所述的第二點(diǎn)至少之一,確定所述的第一圓與所述的第二圓,其中所述的第一整數(shù)等于所述的偶數(shù)的 一半,所述的第二整數(shù)等于所述的偶數(shù)的一半減一;以及所述的多邊形填充引擎,根據(jù)所述的第一圓的圓周與所述的第二圓的圓 周,確定所述的多個(gè)多邊形頂點(diǎn)。
15. 如權(quán)利要求14所述的粗線(xiàn)繪制裝置,其特征在于,所述的多邊形填充 引擎,根據(jù)由所述的起點(diǎn)與所述的終點(diǎn)定義的參考向量,確定由所述的第一 圓的中心點(diǎn)與所述的第一圓的圓周上一點(diǎn)定義的第一量化法向量;根據(jù)由所 述的起點(diǎn)與所述的終點(diǎn)定義的所述的參考向量,確定由所述的第二圓的中心 點(diǎn)與所述的第二圓的圓周上一點(diǎn)定義的第二量化法向量;并且根據(jù)所述的第 一量化法向量、第二量化法向量,確定所述的多個(gè)多邊形頂點(diǎn)。
16. 如權(quán)利要求15所述的粗線(xiàn)繪制裝置,其特征在于,當(dāng)?shù)谝徽`差索引值 大于或等于第一臨界值時(shí),所述的多邊形填充引擎調(diào)整所述的第一量化法向 量,以減少由所述的第一量化法向量所引起的寬度誤差,所述的第一誤差索 引值指示由所述的第一量化法向量所引起的寬度誤差;以及當(dāng)?shù)诙饕`差 值大于或等于第二臨界值時(shí),所述的多邊形填充引擎調(diào)整所述的第二量化法 向量,以減少由所述的第二量化法向量所引起的寬度誤差,其中所述的第二 誤差索引值指示由所述的第二量化法向量所引起的寬度誤差。
17. 如權(quán)利要求13所述的粗線(xiàn)繪制裝置,其特征在于,所述的多邊形填 充引擎,根據(jù)由所述的起點(diǎn)與所述的終點(diǎn)定義的參考向量,確定由所述的第 一點(diǎn)與所述的第一圓的圓周上一點(diǎn)定義的量化法向量;并且根據(jù)^f述的量化 法向量、所述的第一點(diǎn)與所述的第二點(diǎn),確定所述的多個(gè)多邊形頂點(diǎn)。
18. 如權(quán)利要求17所述的粗線(xiàn)繪制裝置,其特征在于,當(dāng)誤差索引值大于 或等于臨界值時(shí),所述的多邊形填充引擎還調(diào)整所述的量化法向量,以減少 由所述的量化法向量所引起的寬度誤差,所述的誤差索引值指示由所述的量 化法向量所引起的寬度誤差。
19. 如權(quán)利要求11所述的粗線(xiàn)繪制裝置,其特征在于,所述的圖案繪制引 擎為規(guī)則多邊形繪制引擎,配置為執(zhí)行規(guī)則多邊形繪制操作,以根據(jù)作為中 心點(diǎn)的第一點(diǎn)與由待繪制的所述的粗線(xiàn)的寬度確定的半徑,繪制M1則多邊形, 其中所述的粗線(xiàn)包含所述的第一點(diǎn)與第二點(diǎn),所述的第一點(diǎn)與所述的第二點(diǎn) 其中的一個(gè)為所述的粗線(xiàn)的所述的起點(diǎn),并且所述的第一點(diǎn)與所述的第二點(diǎn) 其中的另一者為所述的粗線(xiàn)的所述的終點(diǎn)。
20. 如權(quán)利要求19所述的粗線(xiàn)繪制裝置,其特征在于,所述的多邊形填充 引擎,根據(jù)所述的規(guī)則多邊形的多條邊,確定所述的多個(gè)多邊形頂點(diǎn)。
全文摘要
本發(fā)明提供一種粗線(xiàn)繪制方法及其裝置。該方法包含根據(jù)待繪制的粗線(xiàn)的寬度與對(duì)應(yīng)于該粗線(xiàn)的線(xiàn)路的起點(diǎn)與終點(diǎn)至少之一,繪制至少一預(yù)定圖案;根據(jù)預(yù)定圖案,確定多個(gè)多邊形頂點(diǎn);以及執(zhí)行多邊形填充操作,以填充由多邊形頂點(diǎn)定義的多邊形區(qū)域,并且將填充多邊形區(qū)域的繪制結(jié)果儲(chǔ)存至幀緩沖器。上述粗線(xiàn)繪制方法達(dá)到了不需要高計(jì)算能力即能繪制高質(zhì)量粗線(xiàn)的效果。
文檔編號(hào)G06T11/20GK101414382SQ20081009280
公開(kāi)日2009年4月22日 申請(qǐng)日期2008年4月28日 優(yōu)先權(quán)日2007年10月16日
發(fā)明者楊宗訓(xùn), 鄧淑文 申請(qǐng)人:聯(lián)發(fā)科技股份有限公司