一種基于三階Bezier曲線的偽裝迷彩自動生成方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)計算機圖形學,特別是用=階Bezier曲線模擬迷彩斑點,并用計算機實 現(xiàn)迷彩斑點的自動繪制。
【背景技術(shù)】
[0002] 迷彩偽裝技術(shù)是現(xiàn)代軍事中重要的偽裝技術(shù),經(jīng)過后期的實際發(fā)展,迷彩與科技 融合后生成了變形迷彩和仿造迷彩。傳統(tǒng)斑點圖案生成主要是人工繪制(每幅迷彩圖案少 則幾十個斑點,多則上千個斑點),該種做法不僅生產(chǎn)效率低下,而且斑點形狀W及顏色面 積比等各個方面很難達到實際要求,沒有發(fā)揮計算機給生產(chǎn)帶來的方便。本迷彩圖案自動 生成系統(tǒng)的設(shè)計主要依托計算機技術(shù),實現(xiàn)迷彩圖案的自動繪制,不僅大大提高了設(shè)計效 率,而且利用數(shù)字圖像處理技術(shù)對人眼不能識別的色差、曲率半徑等進行處理,并且各種顏 色的面積比更加精確的符合迷彩圖案設(shè)計要求,增強了偽裝程度。迷彩的偽裝技術(shù)建立在 排列無規(guī)則、大小不一、曲率半徑適當?shù)陌唿c之上,斑點顏色符合國軍標或者特殊標準。斑 點大小需要滿足畫布比例要求,同時各個斑點銜接處要盡量自由圓滑、符合曲率半徑要求, 整幅圖案顏色要符合給定的顏色比例。
[0003] 由于戰(zhàn)地場景的多變性,迷彩的設(shè)計隨機性要求就比較高。為了能夠完成達到要 求的斑點圖案,工作人員需要手動去繪制完全無規(guī)則的曲線斑點、調(diào)節(jié)斑點曲率、設(shè)置斑點 顏色。往往一幅斑點圖案需要隨機上百個斑點,該給工作人員帶來了很大的任務量。繪制 好的圖形要不斷調(diào)整,滿足最佳狀態(tài),還需要借助計算機S維模型展示,并在AutoCAD圖紙 中繪圖,該是一個非常復雜的過程,因此本迷彩圖案自動生成系統(tǒng)非常具有實際意義。
【發(fā)明內(nèi)容】
[0004] 迷彩圖案自動化生成系統(tǒng)的開發(fā)旨在提供高效、便捷的迷彩設(shè)計方式。本設(shè)計的 核屯、是自動化生產(chǎn),最終成果必須具備快速自動設(shè)計符合要求斑點圖案的功能。因此,本方 法具有按照給定模型尺寸、顏色比、斑點曲率半徑,快速自動化生成符合上述要求的迷彩斑 點、并在AutoCAD中自動繪圖等幾個主要方面的功能。
[0005] 本發(fā)明的特征在于含有W下步驟:
[0006] 步驟(1),斑點曲線建模:用S階Bezier曲線作為迷彩斑點曲線,用閉合的S階 Bezier曲線模擬迷彩斑點。S階Bezier曲線定義如下;
[0007] 定義給定空間n+1個點的位置矢量Pi(i= 0, 1,2,......,n),則迷彩斑點參數(shù)曲 線上各點坐標的插值公式是:
[000引
[0009] 其中,Pi構(gòu)成該迷彩斑點曲線的特征多邊開多,Bi,D(t)是n次Bernstein基函數(shù);
[0010]
[0011] 其中:
[0012] n為基本曲線的次數(shù)。
[0013] C為組合數(shù)公式。
[0014]t表示曲線上點的位置,t的取值為[(U],0代表曲線的開始點位置,1代表曲線 的末端點位置。
[0015] i的取值是從0到n
[0016]其中規(guī)定;〇°= 1,〇! = 1
[0017] 迷彩斑點的曲線性質(zhì):
[0031] 5)迷彩斑點曲線在t = t。處的坐標計算式為:
[0032]p(t〇) = (l-t〇)3p〇+3t〇(l-t〇)2pi+3t〇2(l-t〇)P2
[0033] 步驟(2),手動繪制單個迷彩斑點:用戶在軟件繪圖界面左鍵點擊屏幕來確立一 系列關(guān)鍵點,記錄用戶點擊過的關(guān)鍵點坐標(并將用戶點擊過的關(guān)鍵點在屏幕上標識出 來)。當用戶點擊的某個點和點擊的第一個點重合的時候(用戶所點擊的點的總個數(shù)大于 二個),將用戶點擊過的點,按照先后順序,用S階Bezier曲線的曲線拼接技術(shù),把用戶點 擊過的該一系列點連接起來(同時保留S階Bezier曲線各點處的坐標,方便計算曲線各點 處的曲率半徑),W此繪制出一個迷彩斑點。
[0034] 步驟(3),檢測單個斑點各處的曲率半徑,并繪制出符合曲率半徑要求的斑點:
[0035] 依據(jù)=階Bezier曲線在各點處的曲率半徑計算公式,結(jié)合步驟(1)中生成的=階 Bezier曲線各點處的坐標,計算出=階Bezier曲線各點處的曲率半徑值,然后結(jié)合所要求 的曲率半徑的值,來檢測并標記出不符合曲率要求的曲線,再通過人手動的方式,對點擊過 的關(guān)鍵點的手動調(diào)節(jié),將不符合曲率半徑要求的點調(diào)節(jié)為符合曲率半徑要求的點,即;繪制 的曲線各點的曲率半徑必須比大于等于所給出的曲率半徑的值。最終繪制出一個符合曲率 半徑要求的迷彩斑點。
[0036] 步驟(4),建立符合曲率半徑要求的迷彩斑點庫:
[0037] 保存步驟(3)中符合要求的迷彩斑點的坐標到文件(例如一種實現(xiàn)方式;每一個 迷彩斑點保存為一個.spot文件,并W數(shù)字命名所保存的文件,1.spot, 2.spot……),并W 單個斑點所含關(guān)鍵的個數(shù)為劃分依據(jù),分別建立含有多個關(guān)鍵點的大型斑點庫和包含較多 斑點的中型斑點庫W及包含較少斑點的小型斑點庫。
[003引步驟巧),將車輛的模型簡化為一個長方體,建立了與車輛模型相匹配的五面畫 布,該畫布為平面結(jié)構(gòu),其包括矩形A、矩形B、矩形C、矩形D、矩形E,其中矩形E為該五視圖 畫布的中屯、面,矩形E的四條邊分別為邊a、邊b、邊C、邊d;所述矩形A、矩形B、矩形C、矩 形DW矩形E為中屯、,矩形A與矩形E公共邊為邊a,矩形B與矩形E公共邊為邊b,矩形C 與矩形E公共邊為邊C,矩形D與矩形E公共邊為邊d。該五視圖畫布的矩形A、矩形B、矩 形C、矩形D分別W邊a、邊b、邊C、邊d為中屯、,沿平面內(nèi)豎直方向90°旋轉(zhuǎn),矩形A、矩形 B、矩形C、矩形D、矩形E即組成無蓋的六面體結(jié)構(gòu),該六面體結(jié)構(gòu)與待繪制的車輛模型相對 應,其中矩形E為待繪制的車輛模型的頂面,矩形A、矩形B、矩形C、矩形D為待繪制的車輛 模型四個側(cè)面,如圖2。
[0039] 步驟化),隨機生成一幅包含多個迷彩斑點(各個迷彩斑點之間沒有交集)的迷彩 圖案:
[0040] 步驟化1)首先建立一個序列l(wèi)ist,用來保存斑點,初始時存儲序列為空,每次在 畫布上添加一個斑點,就把所添加的斑點加入到存儲序列中。
[004U步驟化2)將畫布紋理映射到車輛時,畫布上的矩形A、矩形B、矩形C、矩形D會分 別覆蓋到車輛的四個側(cè)面,此時矩形A與矩形B、矩形B與矩形C、矩形C與矩形D、矩形D與 矩形A會產(chǎn)生四條公共邊,記為:油、be、cd、da。油由畫布上的矩形A的邊al與畫布上的 矩形B的邊bl合并而來,be由畫布上的矩形B的邊b2與畫布上的矩形C的邊cl合并而 來,cd由畫布上的矩形C的邊c2與畫布上的矩形D的邊dl合并而來,da由畫布上的矩形 D的邊d2與畫布上的矩形A的邊a2合并而來。油、be、cd、da與車輛豎直方向的四條側(cè)棱 相對應。為實現(xiàn)車輛上跨越該四條側(cè)棱的斑點為同一個斑點,需要對五視圖畫布上的斑點 做如下所示處理(圖3):
[00創(chuàng) 步驟化2. 1)將矩形A、矩形B、矩形C、矩形D的八條邊;al、a2、bl、b2、cl、c2、 dl、d2劃為四組,al、bl劃為第一組,b2、cl劃為第二組,c2、dl劃為第S組,d2、al劃為第 四組。記邊al、bl的交點坐標為(xCenter,yCenter)。
[004引步驟化2. 2)從小型斑點庫隨機一個斑點spot,并讓其跨越邊al,記斑點spot中 屯、坐標為(x,y),并將其加入到序列l(wèi)ist中。
[0044] 步驟化2.如將斑點spot的中屯、坐標(X,y)Wal、bl的交點坐標(xCenter, yCenter)為旋轉(zhuǎn)中屯、順時針旋轉(zhuǎn)90度,此時斑點跨越邊bl。
[0045] 步驟化2. 4)將旋轉(zhuǎn)90度過后的斑點spot加入到序列l(wèi)ist中。
[0046] 步驟化2. 6)其余S組邊做同樣處理。
[0047] 步驟化3)在畫布主干區(qū)域布大斑點。按照一定的間隔,從主干區(qū)域起始位置到 主干區(qū)域終點位置,遍歷主干區(qū)域。然后從大型斑點庫取一個斑點,用當前位置坐標作為大 型斑點的中屯、位置。根據(jù)當前大型斑點的縮放比例,旋轉(zhuǎn)角度,計算出大型斑點的每個關(guān)鍵 點在畫布上的實際位置。
[0048] 遍歷存儲