- 相關(guān)推薦
用計(jì)算機(jī)程序制作三維立體畫
摘 要 該文介紹了三維立體畫的原理和制作方法,并給出了用C語言編寫的源程序。借助于Pbrush.exe,讀者可以自己設(shè)計(jì)和欣賞各式各樣的三維立體畫。
目前,市面上正在流行各式各樣的立體畫,其特點(diǎn)是從外表來看與一般的圖案很相似,但是雙眼緊盯著注視片刻后,一恍惚之間眼前便出現(xiàn)了畫中畫——立體像。筆者第一次看到這種畫便被發(fā)明者的創(chuàng)意所傾倒。利用眾所皆知的雙眼視差原理,竟能在一張平面紙上制造出如此奇幻。但是立體畫本身除了其發(fā)明者的靈感和畫面創(chuàng)作者的別出心裁之外,其原理上并無神秘之處。用計(jì)算機(jī)程序來實(shí)現(xiàn)它,可說是易如反掌。筆者用一個(gè)晚上時(shí)間,便在微機(jī)上用BASIC語言實(shí)現(xiàn)了簡單形體——平面圓餅的立體畫。當(dāng)然,要使該程序具有完善的功能,提高其制作速度,還是應(yīng)該用編譯語言(如C語言)來編寫。本文中給出的源程序借助于Windows中的.BMP圖形文件,可使大家自己制作任意形態(tài)的立體畫。
一、立體畫的原理
看過立體電影的人都知道,當(dāng)人的雙眼分別接收不同視角拍攝的圖像時(shí)便會(huì)產(chǎn)生立體感。這是由于人眼長期觀察的習(xí)慣造成的。和立體電影原理相同的立體攝影風(fēng)景照片也很早就已出現(xiàn)。圖1中給出了這種立體照片的示意圖。左、右照片分別是人的雙眼角度上觀察一棱錐體時(shí)左右眼看到的圖像(圖2)。左眼看到的是棱錐的頂端向右錯(cuò)動(dòng)了一些的圖像,右眼的看到則是棱錐的頂端向左錯(cuò)動(dòng)了一些的圖像。如果用一張硬卡片隔開兩張照片(如圖3),@@09A04000.GIF;圖1@@
@@09A04001.GIF;圖2@@
@@09A04002.GIF;圖3雙眼分別看兩張畫,會(huì)看到一個(gè)立體的棱錐體。這種立體照片的觀察方法在測(cè)繪學(xué)中也早已采用。
但是,目前的三維立體畫在形式上與這些很不相同。它是怎樣在同一張畫面上呈現(xiàn)立體的呢?首先,分析一下人們是怎樣從這些立體畫中看出“立體形體”的。從前面所說的可以知道,人眼要得到立體感,雙眼必須有視差,即雙眼看到的圖像應(yīng)該有差異。人們?cè)诳戳Ⅲw畫時(shí),都有“恍惚”一下的過程。在這過程中,雙眼的視中心發(fā)生了錯(cuò)動(dòng)(如圖4)。這樣@@09A04003.GIF;圖4左眼看到的是畫面的“偏左像”,右眼看到的是畫面的“偏右像”。@@只要“偏左像”和“偏右像”的內(nèi)容相當(dāng)于圖1的左、右照片,雙眼就會(huì)感到立體形體。那么,能否把圖1的左、右照片分別當(dāng)做“偏左像”和“偏右像”,簡單重疊來得到立體畫呢?
顯然不行。能夠合成立體畫的“偏左像”和“偏右像”是要滿足一定條件的。
如果圖5中表現(xiàn)的棱錐體的表面上有圖案的話,
@@09A04004.GIF;圖5像素a和像素a'應(yīng)該具有相同的顏色,因?yàn)樗鼈兪菑牟煌暯怯^察的@@同一個(gè)實(shí)體點(diǎn)。像素b和像素b'、像素c和像素c'的情況與此相同。把兩幅畫分別當(dāng)作“偏左圖”和“偏右圖”,部分重疊成為同一畫面時(shí),在新的畫面上這種關(guān)系仍應(yīng)該表現(xiàn)為a=a',b=b',c=c'(如圖6)。但這時(shí)應(yīng)該注意到,在這張合成
@@09A04005.GIF;圖6畫面上,點(diǎn)a'既是“偏右圖”上的點(diǎn)a',又是“偏左圖”上的點(diǎn)b。而@@一張畫面上相同坐標(biāo)點(diǎn)的像素只可能是一種顏色,因此,產(chǎn)生了新的像素關(guān)系a'=b。另外,點(diǎn)a既是“偏左圖”上的點(diǎn)a,又是“偏右圖”上的點(diǎn)c',所以,a=c'。以此類推,點(diǎn)b'和點(diǎn)c也有類似的情況。因此出現(xiàn)了新的關(guān)系表示式,...'=c=c'=a=a'=b=b'=...。這就構(gòu)成了立體畫面上像素必須要滿足的條件:“等顏色像素鏈”。立體畫上的所有點(diǎn)都從屬于某一條“等顏色像素鏈”。這就是所有立體畫圖案都呈現(xiàn)出某種程度上的水平周期性的原因。
因此,對(duì)于任意立體形狀,只要構(gòu)造出相應(yīng)的這種“等像素鏈”,并按其規(guī)律充填圖案即可得到立體畫。但是正如前面所述,由于這種“等像素鏈”條件的約束,人們雖然可以隨意構(gòu)造出各種形體的立體畫,但其立體形體的表面圖案是不能完全隨人意愿的。
二、制作立體畫的計(jì)算機(jī)程序
由于人的雙眼的水平性
[1] [2] [3] [4] [5]
【用計(jì)算機(jī)程序制作三維立體畫】相關(guān)文章:
《用計(jì)算機(jī)程序解決問題》--參考教案204-25
《用計(jì)算機(jī)程序解決問題》--參考教案104-25
工程測(cè)量中的若干實(shí)用計(jì)算器程序04-27
公路、鐵路施工測(cè)量的實(shí)用計(jì)算器程序04-30
用計(jì)04-28
對(duì)大學(xué)生使用計(jì)算機(jī)的看法05-04
利用計(jì)算機(jī)輔助審計(jì)技術(shù)研究05-02
三維景觀圖的制作原理及其應(yīng)用04-30