本發(fā)明涉及一種計算機圖形中多邊形的2d繪制,尤其涉及一種基于磁吸器的多邊形繪制的系統(tǒng)及其方法,當新增的操作點時,只要在已有的點或邊的指定范圍內(nèi),就會被自動吸附到對應的點或邊上的多邊形繪制方法。
背景技術(shù):
在模型建模技術(shù)中,尤其在居室3d模型建模中常常需要先畫2d多邊形的房間然后以生成居室3d模型。當涉及對2d多邊形新增操作點時,常常需要新增的操作點與已有的點或邊重合,這種需要精確操作才能達到,在現(xiàn)有的技術(shù)中,都是通過人工對其進行逼近操作,這種人工逼近操作不僅很難精確而且操作成本極大。
技術(shù)實現(xiàn)要素:
1.發(fā)明要解決的技術(shù)問題
針對現(xiàn)有技術(shù)中所提及的對2d多邊形新增操作點時,常常需要新增的操作點與已有的點或邊重合,都是通過人工對其進行逼近操作的問題,本發(fā)明涉及一種基于磁吸器的多邊形繪制的方法,尤其涉及當新增的操作點時,只要在已有的點或邊的指定范圍內(nèi),就會被自動吸附到對應的點或邊上的多邊形繪制方法,提高了計算機圖形繪制的效率。
2.技術(shù)方案
一種基于磁吸器的多邊形繪制的系統(tǒng),包括3個模塊,操作點捕獲器、磁吸器和磁吸點存儲器;操作點捕獲器將新增操作點的節(jié)點坐標傳輸給磁吸器;磁吸器將新磁吸點的節(jié)點坐標傳輸給磁吸點存儲器。
操作點捕獲器:捕獲在屏幕上操作新增操作點的節(jié)點坐標;并將新增操作點的節(jié)點坐標傳輸給磁吸器;
磁吸器:從操作點捕獲器中獲取新增操作點節(jié)點坐標以及從磁吸點存儲器中獲取的已有磁吸點的節(jié)點坐標計算新磁吸點的節(jié)點坐標(即將操作點的節(jié)點坐標轉(zhuǎn)換為磁吸點的節(jié)點坐標),并將新磁吸點的節(jié)點坐標傳輸給磁吸點存儲器;
磁吸點存儲器:從磁吸器中獲取新磁吸點的節(jié)點坐標并按操作順序進行記錄。
基于磁吸器的多邊形繪制的方法,其步驟包括:
步驟1.捕獲新增操作點:操作點捕獲器捕獲對屏幕新增操作點的節(jié)點坐標,并將新增操作點的節(jié)點坐標傳輸給磁吸器;
步驟2.計算新磁吸點。磁吸器從操作點捕獲器中獲取新增操作點的節(jié)點坐標以及從磁吸點存儲器中獲取的已有磁吸點的節(jié)點坐標,并根據(jù)新增操作點的節(jié)點坐標和已有的磁吸點的節(jié)點坐標計算新磁吸點的節(jié)點坐標,即將新增操作點的節(jié)點坐標轉(zhuǎn)換為磁吸點的節(jié)點坐標,可通過點磁吸法、邊磁吸法或點邊磁吸法進行轉(zhuǎn)換,此三種方法互不依賴,自成體系。
點磁吸法,從磁吸點存儲器中獲取所有的磁吸點的節(jié)點坐標,并挨個計算與新操作點的距離,取最小的距離以及對應的磁吸點,假設此最小距離為dlen,當dlen小于或等于范圍值k(此范圍值k為正實數(shù)),則最小距離對應的點即為新增操作點對應的磁吸點,否則新操作點即為磁吸點;并將得到的新磁吸點的節(jié)點坐標傳輸給磁吸點存儲器;
邊磁吸法,從磁吸點存儲器中按操作先后順序依次獲取所有的磁吸點的節(jié)點坐標,并按先后順序挨個取兩點(此兩點為本點和下一個點)組成一邊,并挨個計算此邊與新操作點的最小距離以及對應的點,取所有邊的最小的距離中的最小距離,假設此最小距離中的最小距離為blen,當blen小于或等于范圍值k(此范圍值k為正實數(shù)),則此最小距離blen對應的點即為新增操作點對應的磁吸點,否則新增操作點即為磁吸點;并將得到的新磁吸點的節(jié)點坐標傳輸給磁吸點存儲器;
點邊磁吸法,參照點磁吸法,獲取到點的最小距離dlen以及對應的點,參照邊磁吸法,獲取到邊的最小距離blen以及對應的點;比較最小距離dlen與blen的長度,如果dlen小于或等于blen,則最終最小距離dblen為dlen,dblen對應的點為dlen對應的點;如果dlen大于blen,則最終最小距離dblen為blen,dblen對應的點為blen對應的點;當dblen小于或等于范圍值k(此范圍值k為正實數(shù)),則最終最小距離dblen對應的點即為新增操作點對應的磁吸點,否則新增操作點即為磁吸點;并將得到新磁吸點的節(jié)點坐標傳輸給磁吸點存儲器;
步驟3.記錄磁吸點。磁吸點存儲器從磁吸器中獲取新磁吸點的節(jié)點坐標,并按操作順序?qū)Υ诵麓盼c的節(jié)點坐標進行記錄。
3.有益效果
本發(fā)明提供了磁吸器,即發(fā)明了三種磁吸法,
第一種點磁吸法,對于新增操作的節(jié)點坐標與原有已獲取的節(jié)點坐標進行最小距離計算以獲取磁吸點,解決了現(xiàn)有技術(shù)中在畫多邊形時需要優(yōu)先找到與已有節(jié)點重復的點坐標都需要通過人工的反復逼近操作的問題;
第二種邊磁吸法,對于新增操作的節(jié)點坐標與原有已獲取的各邊線段最小距離計算以獲取磁吸點,解決了現(xiàn)有技術(shù)中在畫多邊形時需要優(yōu)先找到各邊線段上的最近點坐標都需要通過人工的反復逼近操作的問題;
第三種點邊磁吸法,對于新增操作的節(jié)點坐標與原有已獲取的節(jié)點坐標進行最小距離以及與原有已獲取的各邊線段最小距離計算以獲取磁吸點,解決了現(xiàn)有技術(shù)中在畫多邊形時需要在既有點也有邊線段的情況下找到磁吸點的節(jié)點坐標都需要通過人工的反復逼近操作的問題;
綜上,本發(fā)明涉及當新增的操作點時,只要在已有的點或邊的指定范圍內(nèi),即可以自動計算出磁吸點的節(jié)點坐標,讓用戶感覺有自動吸附的多邊形繪制能力的方法,不再需要通過人工的反復逼近操作,這不僅大大提升了磁吸點的節(jié)點坐標的精度,也大大降低了用戶對2d建模的操作成本,提升了用戶對2d模型的操作體驗。
附圖說明
圖1為本發(fā)明的邊磁吸的示意圖;
圖2為本發(fā)明實施例1所涉及的系統(tǒng)模塊圖;
圖3為本發(fā)明實施例1方所涉及的算法流程圖;
具體實施方式
實施例1:
如圖2所示,基于磁吸器的多邊形繪制的系統(tǒng),包括3個模塊,操作點捕獲器、磁吸器和磁吸點存儲器;操作點捕獲器將新增操作點的節(jié)點坐標傳輸給磁吸器;磁吸器將新磁吸點的節(jié)點坐標傳輸給磁吸點存儲器。
操作點捕獲器:捕獲在屏幕上操作新增的節(jié)點坐標;并將新增操作點的節(jié)點坐標傳輸給磁吸器;
磁吸器:從操作點捕獲器中獲取新增操作點節(jié)點坐標以及從磁吸點存儲器中獲取的已有磁吸點的節(jié)點坐標計算新磁吸點的節(jié)點坐標,即將新增操作點的節(jié)點坐標轉(zhuǎn)換為磁吸點的節(jié)點坐標,并將新磁吸點的節(jié)點坐標傳輸給磁吸點存儲器;
磁吸點存儲器:從磁吸器中獲取新磁吸點的節(jié)點坐標并按操作順序進行記錄。
基于磁吸器的多邊形繪制的方法,其步驟為,如圖3所示:
步驟1.捕獲新增操作點。操作點捕獲器捕獲對屏幕新增操作點的節(jié)點坐標,并將新增操作點的節(jié)點坐標傳輸給磁吸器;捕獲的方式可以通過但不限于中斷觸發(fā)方式或者定時輪循的方式。新增操作點的節(jié)點坐標可以是二維坐標也可以是三維坐標。
步驟2.計算新的磁吸點。磁吸器從操作點捕獲器中獲取新增操作點的節(jié)點坐標以及從磁吸點存儲器中獲取的已有磁吸點的節(jié)點坐標,并根據(jù)新增操作點的節(jié)點坐標和已有的磁吸點的節(jié)點坐標計算新磁吸點的節(jié)點坐標,即將新增操作點的坐標轉(zhuǎn)換為新磁吸點的節(jié)點坐標,計算新磁吸點的節(jié)點坐標分為三種,即點磁吸法、邊磁吸法、點邊磁吸法,此三種方法互不依賴,自成體系。
點磁吸法,從磁吸點存儲器中獲取所有的已有磁吸點的節(jié)點坐標,并挨個計算與新增操作點的距離,取最小的距離以及對應的點,假設此最小距離為dlen,當dlen小于或等于范圍值k(此范圍值k為正實數(shù)),則最小距離對應的點即為新增操作點對應的磁吸點,否則新增操作點即為磁吸點;并將得到的新磁吸點的節(jié)點坐標傳輸給磁吸點存儲器;
如圖1所示,邊磁吸法,從磁吸點存儲器中按操作先后順序以次獲取所有的已有磁吸點的節(jié)點坐標,并按先后順序挨個取兩點(此兩點為本點和下一個點)組成一邊,并挨個計算此邊與新增操作點的最小距離以及對應的點,取所有邊的最小的距離中的最小距離,假設此最小距離中的最小距離為blen,當blen小于或等于范圍值k(此范圍值k為正實數(shù)),則此最小距離blen對應的點即為新增操作點對應的磁吸點,否則新增操作點即為磁吸點;并將得到的新磁吸點的節(jié)點坐標傳輸給磁吸點存儲器;
點邊磁吸法,參照點磁吸法(從磁吸點存儲器中獲取所有的已有磁吸點的節(jié)點坐標,并挨個計算與新增操作點的距離),獲取到點的最小距離dlen以及對應的點,參照邊磁吸法(從磁吸點存儲器中按操作先后順序以次獲取所有的已有磁吸點的節(jié)點坐標,并按先后順序挨個取兩點組成一邊,并挨個計算此邊與新增操作點的最小距離以及對應的點),獲取到邊的最小距離blen以及對應的點;比較最小距離dlen與blen的長度,如果dlen小于或等于blen,則最終最小距離dblen為dlen,dblen對應的點為dlen對應的點;如果dlen大于blen,則最終最小距離dblen為blen,dblen對應的點為blen對應的點;當dblen小于或等于范圍值k(此范圍值k為正實數(shù)),則最終最小距離dblen對應的點即為新增操作點對應的磁吸點,否則新增操作點即為磁吸點;并將得到的新磁吸點的節(jié)點坐標傳輸給磁吸點存儲器。
步驟3.記錄磁吸點。磁吸點存儲器從磁吸器中獲取新的磁吸點的節(jié)點坐標,并按操作順序?qū)Υ诵麓盼c的節(jié)點坐標進行記錄;對磁吸點的存儲的方式可以但限于數(shù)組方式或者鏈表方式。