


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、計算機程序創(chuàng)作立體畫 摘 要 該文介紹了三維立體畫的原理和制作 方法 ,并給出了用C語言編寫的源程序。借助于Pbrush.exe,讀者可以自己設計和欣賞各式各樣的三維立體畫。目前 ,市面上正在流行各式各樣的立體畫,其特點是從外表來看與一般的圖案很相似,但是雙眼緊盯著注視片刻后,一恍惚之間眼前便出現(xiàn)了畫中畫立體像。筆者第一次看到這種畫便被發(fā)明者的創(chuàng)意所傾倒。利用眾所皆知的雙眼視差原理,竟能在一張平面紙上制造出如此奇幻。但是立體畫本身除了其發(fā)明者的靈感和畫面創(chuàng)作者的別出心裁之外,其原理上并無神秘之處。用 計算 機程序來實現(xiàn)它,可說是易如反掌。筆者用一個
2、晚上時間,便在微機上用BASIC語言實現(xiàn)了簡單形體平面圓餅的立體畫。當然,要使該程序具有完善的功能,提高其制作速度,還是應該用編譯語言(如C語言)來編寫。本文中給出的源程序借助于Windows中的.BMP圖形文件,可使大家自己制作任意形態(tài)的立體畫。一、立體畫的原理看過立體電影的人都知道,當人的雙眼分別接收不同視角拍攝的圖像時便會產(chǎn)生立體感。這是由于人眼長期觀察的習慣造成的。和立體電影原理相同的立體攝影風景照片也很早就已出現(xiàn)。圖1中給出了這種立體照片的示意圖。左、右照片分別是人的雙眼角度上觀察一棱錐體時左右眼看到的圖像(圖2)。左眼看到的是棱錐的頂端向右錯動了一些的圖像,右眼的看到則是棱錐的頂端
3、向左錯動了一些的圖像。如果用一張硬卡片隔開兩張照片圖3雙眼分別看兩張畫,會看到一個立體的棱錐體。這種立體照片的觀察方法在測繪學中也早已采用。但是,目前的三維立體畫在形式上與這些很不相同。它是怎樣在同一張畫面上呈現(xiàn)立體的呢?首先, 分析 一下人們是怎樣從這些立體畫中看出“立體形體”的。從前面所說的可以知道,人眼要得到立體感,雙眼必須有視差,即雙眼看到的圖像應該有差異。人們在看立體畫時,都有“恍惚”一下的過程。在這過程中,雙眼的視中心發(fā)生了錯動(如圖4)。這樣;圖4左眼看到的是畫面的“偏左像”,右眼看到的是畫面的“偏右像”。只要“偏左像”和“偏右像”的 內容 相當于圖1的左、右照片,雙眼就會感到立
4、體形體。那么,能否把圖1的左、右照片分別當做“偏左像”和“偏右像”,簡單重疊來得到立體畫呢?顯然不行。能夠合成立體畫的“偏左像”和“偏右像”是要滿足一定條件的。如果圖5中表現(xiàn)的棱錐體的表面上有圖案的話,GIF;圖5像素a和像素a'應該具有相同的顏色,因為它們是從不同視角觀察的同一個實體點。像素b和像素b'、像素c和像素c'的情況與此相同。把兩幅畫分別當作“偏左圖”和“偏右圖”,部分重疊成為同一畫面時,在新的畫面上這種關系仍應該表現(xiàn)為a=a',b=b',c=c'(如圖6)。但這時應該注意到,在這張合成09A04005.GIF;圖6畫面上,點a
5、9;既是“偏右圖”上的點a',又是“偏左圖”上的點b。而一張畫面上相同坐標點的像素只可能是一種顏色,因此,產(chǎn)生了新的像素關系a'=b。另外,點a既是“偏左圖”上的點a,又是“偏右圖”上的點c',所以,a=c'。以此類推,點b'和點c也有類似的情況。因此出現(xiàn)了新的關系表示式,.'=c=c'=a=a'=b=b'=.。這就構成了立體畫面上像素必須要滿足的條件:“等顏色像素鏈”。立體畫上的所有點都從屬于某一條“等顏色像素鏈”。這就是所有立體畫圖案都呈現(xiàn)出某種程度上的水平周期性的原因。因此,對于任意立體形狀,只要構造出相應的這種“等
6、像素鏈”,并按其 規(guī)律 充填圖案即可得到立體畫。但是正如前面所述,由于這種“等像素鏈”條件的約束,人們雖然可以隨意構造出各種形體的立體畫,但其立體形體的表面圖案是不能完全隨人意愿的。二、制作立體畫的計算機程序由于人的雙眼的水平性,以上的“等像素鏈”只按水平方向分布,與垂直方向無關。因此,在程序中,各個像素行的處理過程是相互獨立的。制作立體畫的程序主結構圖如圖7。09A04006.GIF;圖7 制作立體畫的程序主結構圖在以上結構圖中,關鍵是如何建立“等像素鏈”。具體的處理如下。對于立體形體上的每一個點,首先求出該點在“偏左圖”和“偏右圖”上的坐標。以圖1中的棱錐頂點為例,實際上其X坐標是在中心點
7、,但由于雙眼的位置并不在其正上方,頂點在“偏左圖”上向右位移,在“偏右圖”上向左位移,而且其位移值的大小顯然與其高度有關,即該點坐標越高位移值就越大。a,b,c等點也都有這些位移。在求出一個點在“偏左圖”和“偏右圖”上的坐標后,再算出在合成圖(如圖6)上的對應坐標,以建立“等像素”關系,如a=a'。當立體形體的一個水平剖面上的全部點經(jīng)過以上處理后,合成圖的各條“等像素鏈”關系也就 自然 形成了。另外,由于有可能出現(xiàn)高點遮蓋低點的情況,“等像素鏈”的構造應該從低點到高點逐層進行,高點的“等像素”關系將替代低點的“等像素”關系。這也是程序主結構圖中“首先,對于沒有任何形體存在的背景平面構造
8、等像素鏈”的原因。下面給出了根據(jù)以上結構圖用C語言編寫的源程序。程序中,每一個坐標點對應一個結構型數(shù)據(jù),它包含“前像素”、“后像素”兩個指針。“前像素”指針指向該坐標點作為“偏右圖”上的一點,在“偏左圖”所對應的點的坐標。“后像素”指針指向該坐標點作為“偏左圖”上的一點,在“偏右圖”所對應的點的坐標。程序中,“立體形體水平剖面的高低坐標數(shù)據(jù)”、“原始圖案素材”和輸出的“立體畫”的文件格式都是采用了Windows3.1 的Pbrush產(chǎn)生的BMP圖形文件格式。圖幅大小要求都是640×400,用16種顏色方式。其中,立體形體上各點的高低坐標用圖形文件中的顏色值表示,因此該圖形文件的圖形與
9、帶顏色的等高線圖安全相同。通常情況下,在16色的BMP文件中顏色值從小到大的順序為:黑色、暗紅色、暗綠色、暗黃色、暗藍色、暗紫色、暗青色、暗灰色、灰色、明紅色、明綠色、明黃色、明藍色、明紫色、明青色、白色。本程序采用最簡單的“圖案充填”方案,即各條“鏈”上的像素點皆采用該“鏈”上的第一個像素的顏色。程序中的常數(shù)EYE-SPACE表示“偏左圖”和“偏右圖”之間的偏差,BO-DOT是表明“鏈”的首或尾的指針標志。該程序寄生在Windows 3.1中的Pbrush軟件上。借助于它來構筑立體形體(即立體形體水平剖面高低坐標數(shù)據(jù)文件圖8),設計原始圖案(圖9)。程序運行后,逐行輸入并處理以上兩個文件中的圖
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 育嬰護理課件
- 育嬰師服務技能培訓課件
- 育嬰健康知識課件
- 杜集區(qū)九年級數(shù)學試卷
- 段子 數(shù)學試卷
- 高三評講數(shù)學試卷
- 東莞一中數(shù)學試卷
- 高考湖南卷數(shù)學試卷
- 東埠中學九年級數(shù)學試卷
- 2025年4月首都醫(yī)科大學附屬北京口腔醫(yī)院面向應屆畢業(yè)生(含社會人員)招聘114人(第二批)筆試歷年專業(yè)考點(難、易錯點)附帶答案詳解
- 臨床各科急救流程規(guī)范規(guī)范圖
- 交安工程勞務分包參考價格(范本)
- 護理敏感質量指標解讀ppt
- 三世演禽命理秘書講課教案
- DB44∕T 1702.2-2015 屋面并網(wǎng)光伏發(fā)電系統(tǒng) 第2部分:施工與驗收規(guī)范
- (新版)孤殘兒童試題庫(含答案)
- 微小灶外賣訂餐系統(tǒng)
- 通風與空調工程施工工藝流程圖
- 協(xié)議回款承諾書
- 中英文對照財務報表-模板
- 各種常見留置管道的固定方法及注意事項
評論
0/150
提交評論