《二維圖向三維浮雕圖轉換的研究》由會員分享,可在線閱讀,更多相關《二維圖向三維浮雕圖轉換的研究(2頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、
第 1 期
2003 年 1 月
CHINA MEASUREMENT TECHNOLOGY
中國測試技術
No11
J an1 ,2003
二維圖向三維浮雕圖轉換的研究
馬
毅
盧延詩
(電子科技大學機械電子工程學院 ,成都 610054)
摘要 浮雕藝術品具有較強的藝術表現(xiàn)力 ,因此受到了越來越
多的人們的喜愛 ,也正因為如此 ,人們對浮雕藝術品的需求也 日益增加 。為了滿足人們對浮雕藝術品的需求的增長 ,現(xiàn)在大 多采用了 CAD/ CAM 技術來完成浮雕藝術品的設計和制造 。其 中大部分是直接在三維空間中進行設計和制造。但是 ,我們往 往面對的是
2、一副二維圖 ,如一副照片等。因此本文將討論如何 利用計算機輔助設計手段來實現(xiàn)從二維圖到三維浮雕圖的轉 換。
關鍵詞 布爾運算 掃描法 四叉樹 細分
對于簡單圖形來說 ,只要我們能確定平面圖形中
各個形體所表達的立體圖形的具體形態(tài) ,那么我們通 過簡單的轉換 ———定義不同圖形的高度 ,以及拔高時 的拔模斜度等就可以將二維圖轉換成三維浮雕圖 。例 如圖 1 (左) 所示的四個圖形 ,我們采用下面的步驟便 可將其轉換成圖 1 ( 右) 所示的立體浮雕圖形了 : 先把 外圍矩形框沿 Z 軸正向拔高一個高度形成一個長方體 基板 ;然后在基板上表面對左邊的兩個圖形 (矩形和圓 形) 拔高
3、一個適當?shù)母叨?; 對于右邊的兩個圖形 ,先在 基板上表面建立外輪廓 ( 矩形和圓形) ,然后將其拔高
總體思想
我們可以把二維圖看成是三維浮雕圖向某平面的 投影 。這樣 ,我們需要做的就是將二維投影恢復成三 維形體 。不過 ,由于二維圖中的圖形不包括三維信息 , 例如三維浮雕圖中的立方體投影可能只是一個矩形 , 一個曲面投影可能是一條曲線 ,一個平面投影可能只 是一條直線 。因此 ,我們首先要做的就是要確定平面 圖形中的形體在三維中空間對應的形體該是什么 ( 當 然這個要求似乎有點苛刻 ,但是作為設計者來說 ,理所 應當知道他將要設計的是什么) ,再將這些形體分成三 類 ———簡單形
4、體 , 較復雜的規(guī)則形體 , 復雜的自由形 體 ,然后再利用計算機輔助設計手段令其以三維的形 態(tài)展現(xiàn)出來 ,之后設計者便可以對三維浮雕進行交互 修改和設計 ,直到得到滿意的浮雕圖為止 。
1
一定的高度 ,同時要求提供一個拔模斜度以生成臺體 。
2 . 2 規(guī)則的復雜形體轉換
圖 2 規(guī)則的復雜圖形的轉換
對于圖 2 所示的稍微復雜一些的圖形來說 ,可以 通過對簡單圖形的布爾運算 ———“交 ,差 ,并”以及形體 掃描法將其構造出來 ,因為這些圖形實際上是很規(guī)則 的 。例如圖 2 ( 左) 所示的四個圖形 ,在確定平面圖形 中各個形體所表達的立體圖形的具體形態(tài)后 ,我們可 以采
5、用下面的步驟便可將其轉換成圖 2 ( 右) 所示的立 體浮雕圖了 :左上的圖形通過兩個大小不一的半球體 進行布爾“并”運算 ; 左下的圖形實際上是一條曲線繞 中心軸回轉 360 度而形成的掃描體 ; 右上的圖形則是 一個小圓沿一段半圓弧掃描形成的掃描體 ; 右下方的 圖形則是先生成一個帶曲線邊的不規(guī)則平面面域 ,然 后沿一直線掃描得到一個掃描體后再與一個小圓柱體 進行布爾“差”運算 。
2 . 3 自由形體轉換
前面討論的是規(guī)則圖形 ,但是我們在實際情況下 遇到的浮雕圖可能是很復雜的不規(guī)則圖形 ———自由形 體 。對于這些由由形體來說 ,他們的轉換就要復雜得 多了 ,但是在要求不是很高的場
6、合 ,我們可以采用細分
具體轉換方法
下面 ,我們將討論在二維圖向三維浮雕圖轉換時 將用到的主要轉換方法 。當然 ,本文的目的是在于討 論轉換方法 ,因此我們采用的示例圖形都是比較簡單 的圖形以便于理解 。
2 . 1 簡單形體轉換
2
圖 1
簡單圖形的轉換
操作的統(tǒng)一性 ,我們不能直接對斜面進行細分 ,而是采
由形體的轉換 。
用圖 4 所示的方法 ,將正方形 abcd 拾高 1/ 2 個斜面的
高度得到一個新的正方形 a′b′c′d′,然后再對這個正方 形進行細分操作 。由于我們可以通過推算得到正方形 abcd 的四個頂點的坐標值 ,再加上
7、我們已知的角度α,
因此正方形 a ,b′c′d′的頂點坐標值也能很容易的推算
出來 。正方形繞 X 軸旋轉后的處理方法類似 。
(3) 數(shù)據(jù)結構
最后 ,我們還必須選取合理的數(shù)據(jù)結構來描述四 叉樹所表達的信息 。這一結構除了能有效的存取外 , 還應盡可能減小內存的消耗 ,同時也要考慮占用盡可
能少的磁盤空間 。當采用了前面的編碼方案后 ,枝結 點的位置信息 ( 主要指 X , Y 方向的坐標值 , Z 方向的
坐標值將通過進行的轉換操作來計算) 完全隱藏在葉
圖 3 四叉樹細分技術及四叉樹表示
2 . 3 . 1 四叉樹細分技術的主要思想 首先我們用一個初始正方形去包圍
8、我們要處理的
平面圖形 ,然后將這個正方形平分成四個子正方形 ,現(xiàn)
在我們可以對這四個子正方形進行轉換操作 ———從簡 單考慮 ,我們允許的操作只有許沿 Z 軸正方向 (或負方
向) 抬高一定距離 ,或者沿 X 軸 ( 或 Y 軸) 旋轉一個角 度α如果對現(xiàn)在這個子正方形操作后的結果還不滿意 的話 ,可以繼續(xù)將該子正方形進一步細分成四個更小
的正方形 ,然后再對這些更小的正方形進行轉換操作 。 這個過程將一直持續(xù)進行到滿意為止 。這樣我們便可 以得到類似圖 3 (右) 所示的一棵四叉樹 。
2 . 3 . 2 四叉樹細分技術的實現(xiàn)
(1) 結點編碼
為有效地存取四叉樹中的結
9、點信息 ,我們對樹中 的每一結點進行如下編碼 : 首先指定四個正方形中距
原點 (0 ,0 ,0) 最近的正方形編號為 0 ,其相鄰結點的編
號沿 X 軸方向增 1 ,沿 Y 軸方向增 2 ( 則最初的四個正 方形編號如圖 3 所示) ,并把父結點的編號放在子結點 的前面一起作為子結點的編碼的一部分 ; 為保證四叉
樹中每一結點有相同長度的編碼 ,可以在結點編碼的 后面填充一些特殊字符 ,如‘F’,那么每一個樹結點的 編碼均可以表示為 ql q2 qi FF F 。其中 ,qi ∈{0 ,1 ,2 ,
3} ,i ∈1 ,n 。例如 ,如果采用 8 位編碼 ,
10、則圖 3 ( 左) 中 小正 方 形 a 的 編 碼 為 122FFFF , 其 父 結 點 編 碼 為
12FFFFFF ,祖父結點編碼為 1FFFFFF 如圖 3 (右) 所示 。
(2) 正方形繞 Y(或 X) 軸旋轉后的細分方法
結點的編碼中 。例如 ,如果葉結點的編碼為 q q qiFF
l 2
F ,那么他的父結點的編碼就為 ql q2
父接點的編碼就為 ql q2 qi - 2 FF F
qi - 1 FF F , 祖
等等 。同時 ,
由于我們細分過程采用的都是正方形 ,因此任意結點
的位置信息可以通過編碼和初始正方形的邊長和一個 初始點很容易推算出
11、來 。這樣在結點數(shù)據(jù)結構中我們
就不用存放結點的平面位置信息了 ,因此減少了數(shù)據(jù)
存儲占用的磁盤空間 。但是 ,我們在結點中必須保存 我們進行的轉換操作信息 ———沿 Z 軸正方向或負方向
抬高的距離 ,或者沿 X 軸或 Y 軸旋轉的角度 ,通過這
些信息我們才能獲得圖形的三維信息 。另外 ,從減小 內存消耗的角度考慮 ,我們把四叉樹的信息通過鏈表 的形式表示出來 。綜上所述 ,我們對四叉樹中各結點 的數(shù)據(jù)結構的定義如下 :
根結點 ———指向四個子結點的指針 ,一個初始點
(一般是坐標最小的點) 值 ,初始正方形的邊長 ;
枝結點 ———指向四個子結點的指針 ,自己的編碼 ,
12、
轉換操作的信息 ;
葉結點 ———同枝結點 ,但是四個指向子結點的指 針全部設為空值 。
這樣 ,我們就可以通過遍歷這棵四叉樹來建立我
們所需要的三維浮雕圖了 。
總結
由前面的討論可以看出 ,對于一副二維圖來說 ,在 確定圖形的具體三維形態(tài)之后 ,就可以綜合利用抬高 平面圖形 ,簡單實體的布爾運算 ,形體掃描法 ,以及自 由形體的四叉樹細分等方法來實現(xiàn)從二維圖到三維浮 雕圖的轉換 。
參 考 文 獻
3
譚建榮 ,計算機工程圖學的探索與實踐. 北京 : 電子工業(yè)出
版社 ,1994 ,4
陳元琰 ,張曉競. 計算機圖形學實用技術 1 北京 : 科學出版 社 ,2000 ,9
彭群生 ,鮑虎軍 ,金小剛 1 計算機真實感圖形的算法基礎.
北京 :科學出版社 ,1999
DonaldHearn ,M. Pauli He Baker 著 , 蔡士杰等譯. 計算機圖形 學. 北京 : 電子工業(yè)出版社 ,1998
1
2
3
圖 4 正方形繞 Y 軸旋轉后的細分方法
如圖 4 所示 ,當某個正方形 abcd 沿 Y 軸旋轉一個 角度α后將得到一個斜面四邊形 adef 。如果要繼續(xù)對
4