999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C語言中動畫技術的實現方法

2011-12-31 00:00:00張君楠
考試周刊 2011年88期


  摘 要: 動畫具有突出并強化事物特征、實現工作模擬、進行圖形變換等多種功能,使所開發的軟件科學合理、生動形象。本文介紹了動畫的基本原理及利用C語言程序設計實現動畫的常用方法。
  關鍵詞: C語言 動畫技術 實現方法 圖形處理函數
  
  C語言是一種計算機程序設計語言。它既具有高級語言的特點,又具有匯編語言的特點。它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬件的應用程序。C語言具有強大的繪圖能力,可移植性好,并具備很強的數據處理能力,因此適于編寫系統軟件、二維、三維圖形和動畫。利用C語言提供的圖形處理函數設計動畫程序,可以用于游戲娛樂、輔助教學、實驗模擬和仿真等計算機輔助設計,具有較強的實用性。下面介紹幾種C語言中圖形動畫技術的實現方法。
  一、動畫實現的原理
  動畫的制作原理類似于電影,它是利用了人的視覺效應,使一幅圖像在不同時間和位置多次出現,從而產生動畫效果。動畫的實現其實主要依賴的是人的視覺殘留作用,人的視覺有一種惰性,當看一幅畫的時候這幅畫的信息就保存在眼睛里了,即使這幅畫突然消失,保存在眼睛里的信息還將保留一會兒(大約十分之一秒)。大腦的感覺就好像這幅畫還存在似的。人不會感覺畫面是斷續的,從而產生動畫的效果。因此動畫就是由一連串許許多多的單幅圖像,在程序中快速反復地循環顯示而產生。因此我們可以用C語言提供的許多關于圖形的函數來方便地實現動畫,從前面的動畫原理可以知道有兩個關鍵的地方:一是圖形圖像的產生方式,要求產生的圖像要準確。二是兩幅圖之間的轉換,要求轉換速度要快,不能產生閃爍感。只有這樣實現的動畫才逼真。
  二、C語言動畫設計常用方法
  1.利用目標移動覆蓋技術實現動畫
  動畫的形式是多種多樣的,目標移動是其中之一,即將被移動的目標由屏幕的一個位置移動到另一個位置,直接一步到位移動,沒有中間過程,會使人有生硬突然感,動感不強。為了實現良好的動感,必須根據目標的大小及移動距離的長短分成若干步來實現,每動一步先用底色覆蓋原來的目標,再將移動目標復現在下一位置,這樣逐步到達目的地。由于視覺暫留這一人的生理現象,人的肉眼所見此移動過程具有真實感。很多資料中又將這種動畫實現方法叫做中間化。用此法還可以進行平移、變形、旋轉等動畫設計。
  2.利用擦除法實現動畫
  擦除法動畫設計方法在很多的動畫制作工具中大量使用,它的設計原理是:利用同色原理,當圖形色與背景色相同時人眼不能感知。在動畫設計中,當一個位置畫了一張圖像并使圖像色與背景色也相異,此時將先前畫的圖像在原位置再畫一張,并使圖像色與背景色相同,這樣人眼只能看到新畫的一張圖像而看不到先前畫的圖像,從而先前畫的圖像被擦除了。這樣連續畫多張圖像并在每畫一張新的圖像,將原來的圖像擦除,在觀察者看來就實現了動畫的效果。擦除法動畫設計便于操作,并且它的程序運行所需內存空間小,程序執行過程中不需要圖形存入內存再從內存調出,節省了大量內存空間。
  3.利用調色板實現動畫
  調色板是存放當前可用顏色的一張表,C語言定義了一個名為palette的預定義結構來存放調色板信息。該數據類型定義為:
  # define MAXCOLCRS 15
  Struct palettetype
  {
  Unsigned char size;
  Unsigned char color
  }
  利用getpalette( )函數可以獲取當前調色板的信息,其方法為;
  Struct palettetype pa;
  getpalette(&pa);
  以上語句執行后,當前調色板信息就存放于結構pa中了。
  用調色板產生動畫的基本思想是使用不同的顏色在屏幕上繪制圖形。然后改變調色板中的顏色,這時圖形中的所有對象立即改變顏色,就好像它們在新位置上重新繪制一樣。這樣將顏色變化序列化,即可制造出動畫效果來。由于是通過改變調色板實現動畫的,不需要重新繪制每一幅畫面,因而顯示速度非常快,并能產生獨特的動畫效果。由此可見,調色板動畫必須靠改變調色板中的顏色來實現。這在Turbo C有可以通過setpalette( ),setrgbpalette( )和setall palette( )這三個函數來實現。
  三、基于TC環境中的graphics.h
  Turbo C提供了非常豐富的圖形函數,所有圖形函數的原型均在graphics. h中,使用圖形函數時要確保有顯示器圖形驅動程序*BGI,同時將集成開發環境Options/Linker中的Graphicslib選為on,只有這樣才能保證正確使用圖形函數。圖形模式的初始化不同的顯示器適配器有不同的圖形分辨率。即使是同一顯示器適配器,在不同模式下也有不同分辨率。因此,在屏幕作圖之前,必須根據顯示器適配器種類將顯示器設置成為某種圖形模式,在未設置圖形模式之前,微機系統默認屏幕為文本模式(80列,25行字符模式),此時所有圖形函數均不能工作。設置屏幕為圖形模式,可用圖形初始化函數:
  void far initgraph(int far *gdriver,int far *gmode,char *path);
  其中gdriver和gmode分別表示圖形驅動器和模式,path是指圖形驅動程序所在的目錄路徑。
  本文介紹了在Turbo C中實現動畫的幾種常用的方法。但是各種動畫技術都有其自身的優點和缺點,在實際的設計過程中,我們還要加以認真分析,科學設計,靈活應用。只有通過完整和精密的策劃,才能使設計的動畫達到理想的效果。
  
  參考文獻:
  [1]譚浩強.C語言程序設計[M].北京:清華大學出版社,2003.
  [2]徐金桐.Turbo C實用大全[M]. 北京:機械工業出版社出版,1999.
  [3]焦華.標準C技能百練[M].北京:中國鐵道出版社,2004.
  [4]孫家廣.計算機圖形學(第三版)[M].北京:清華大學出版社,2004.

主站蜘蛛池模板: 国产精品第一区在线观看| 国产综合网站| 国产激情在线视频| 国产无遮挡裸体免费视频| 国产JIZzJIzz视频全部免费| a欧美在线| 日韩在线播放中文字幕| 成人福利在线视频免费观看| 在线看片免费人成视久网下载| 色哟哟国产精品| 蜜桃视频一区| 人人澡人人爽欧美一区| 色综合久久无码网| 日韩欧美在线观看| jizz亚洲高清在线观看| 国产精品手机视频一区二区| 亚洲精品欧美日本中文字幕| 玖玖精品视频在线观看| 欧美日韩免费在线视频| 久久免费精品琪琪| 亚洲天堂视频网站| 88国产经典欧美一区二区三区| 五月天福利视频| 国产中文在线亚洲精品官网| 中文字幕 欧美日韩| 国产三级视频网站| 国产欧美精品一区aⅴ影院| 在线观看亚洲精品福利片| 91精品网站| 久久大香伊蕉在人线观看热2| 色婷婷色丁香| 巨熟乳波霸若妻中文观看免费| 国产精品国产三级国产专业不| 精品色综合| 亚洲精品自在线拍| 日韩av无码精品专区| 色噜噜在线观看| 国产综合网站| 国产国语一级毛片在线视频| 午夜色综合| h视频在线观看网站| 国产无人区一区二区三区| 久久综合九色综合97婷婷| 91热爆在线| 亚洲品质国产精品无码| 欧美成人日韩| 久久伊伊香蕉综合精品| 一区二区三区精品视频在线观看| 亚洲人成电影在线播放| 91无码网站| 国产精品冒白浆免费视频| 色成人亚洲| 另类欧美日韩| 欧美成人h精品网站| 欧美日韩国产高清一区二区三区| 欧美日韩国产成人高清视频| 女人18毛片水真多国产| 国产精品手机视频| 国产亚洲欧美在线专区| 国产成人精品一区二区三区| 国产chinese男男gay视频网| 国产精品久久久久久久久kt| 无码免费的亚洲视频| a天堂视频在线| 久久综合色播五月男人的天堂| 国产玖玖视频| 国产成人毛片| 亚洲欧美人成电影在线观看| 久久人人妻人人爽人人卡片av| 精品久久久无码专区中文字幕| 亚洲国产成人综合精品2020| 国产亚洲精品无码专| 国产特级毛片| 2022国产91精品久久久久久| 91热爆在线| 色网在线视频| 成人免费一区二区三区| 九月婷婷亚洲综合在线| 亚洲激情区| 久久婷婷五月综合97色| 一级毛片在线播放| 国产无套粉嫩白浆|