凃紅玲

摘 要:隨著計算機圖形學的發展,動畫技術廣泛應用于動畫制作、數字影像制作、廣告、輔助教學、游戲等方面,人們對動畫技術的興趣也與日俱增,C語言豐富的圖形處理函數為實現動畫仿真提供了極大的便利。該文探究了在單頁面與多頁面下動畫技術的實現及畫面存儲、重放動畫技術的實現。
關鍵詞:動畫 XOR 單頁面 多頁面 庫函數
中圖分類號:G412 文獻標識碼:A 文章編號:1672-3791(2014)10(b)-0019-01
動畫一般由兩個部分構成:動畫環境(背景)和動畫物體(前景)。多數情況下,產生動畫效果只需要改變屏幕中一個前景運動物體在畫面中的位置,而其背景和動畫物體的開關一般保持不變,因此就需要重復進行顯示、擦除,在新的位置上顯示這一過程從而實現動畫,而動畫的實現又可以分為單頁面與多頁面動畫實現。利用C語言豐富的庫函數可以實現動畫效果及動畫的存儲、重放。
1 單頁面動畫技術
單頁面動畫技術是將動畫物體的圖象保存在存儲區中,需要時快速從內存中拷貝回屏幕進行重新顯示,并通過對該圖象象素與背景象素進行XOR(異或)運算,是被前景所遮蓋的背景圖像部分還原,從而達到動畫效果。
在C語言中,庫函數putimage將內存中所存儲的圖像回送到屏幕任意指定位置上,若將函數里的參數OP定義為XOR_PUT,
就可以使內存中源圖像同背景圖像按位進行“異或”,利用XOR的“還原”特性,即當XOR操作后象素值便發生改變,然后再作一次XOR運算又可把原象素值還原,可對屏幕上的一個運動物體連續作XOR運算,而不必擔心背景圖形的存儲與還原問題。因此,在運動物體的同一顯示位置上連續進行兩次XOR運算,然后在下一顯示位置坐同樣的操作,反復進行,就可使前景運動圖形產生動畫效果。下面就是一個單頁面顯示的動畫實例。
2 多頁面動畫技術
對于有兩個以上顯示頁面的圖形工作模式,可以采用多頁面動畫技術來實現動畫。其基本思想是將一頁作為顯示頁,另一頁作為繪圖頁,這是一個交替過程,即當一個可見頁面用于顯示時,另一個關閉頁用于繪圖;當新的畫面生成后,就把兩頁進行轉換,原來作為顯示用的頁面再用來繪制新的圖形。一般第一頁用于顯示動畫過程的第1、3、5……幅畫面,第二頁用于顯示動畫過程的第2、3、6……幅畫面,如此交替下去,圖形的擦除和重畫過程都在“后臺”進行,屏幕上出現的僅是整幅畫面的瞬間切換,以此來達到動畫效果。該技術利用庫函數setactivepage()與setvisualpage()來實現動畫。下面就是一個多頁面顯示的動畫實例。
3 畫面存儲、重放動畫技術
畫面存儲、重放動畫技術類似幻燈片的制作過程,其基本思想是把整個動畫過程劃分為一個個片斷,將每一片斷作為一幅畫在屏幕上一指定的區域顯示出來,然后把屏幕上的圖像存入一個文件中。在動畫顯示時,按順序不斷推出這些畫面,從而產生動畫效果。該技術利用庫函數getimage()和putimage()來實現動畫。編程分兩步進行,一是生成畫面與畫面存儲。二是畫面重放。為了加快動畫速度,可以先將圖形數據依次讀出,建立一鏈表,然后對此鏈表進行操作。鑒于篇幅,就不給出實例編程。
4 結語
動畫實現的方法是多種多樣的,我們在工程開發、計算機設計、游戲開發等諸方面都要采用動畫技術,利用動畫突出事物特征的功能可以使我們開發的軟件生動形象、科學合理。只要我們在實際應用中,利用C語言豐富的庫函數進行科學設計,靈活應用,就會使自己設計的動畫達到理想的效果。
參考文獻
[1] 譚浩強.C程序設計[M].2版.清華大學出版社,2002.
[2] 朱劍平.軟件開發:編程與設計(C語言版)[M].清華大學出版社,2006.endprint