freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

第3章高級編程技術的實現(xiàn)-資料下載頁

2025-10-03 08:10本頁面

【導讀】與主機通信,向主機傳送一個字節(jié)的按鍵掃描碼。bioskey()返回按健的鍵值,該值是2個字節(jié)的整型數(shù)。按下時,若返回值的低8位為非零,則表示為普通鍵,bioskey()查詢是否有鍵按下。若返回非0值,則表示有。DOS操作系統(tǒng)和TurboC。要操縱鼠標器,首先必須安裝相應的鼠標驅動程序。鼠標操作的功能。不同,而且同一顯卡一般可以支持多種顯示模式。式指定了相應顯示器的工作方式、分辨率和顏色數(shù)目。文本方式時,VRAM存放要顯示字符的。圖形方式時,則要顯示的圖形的圖像直接存

  

【正文】 * 必須為 1 */ int biBitCount。 /* 每像素位數(shù),必須是 1, 4, 8或 24 */ long biCompression。 /* 壓縮方法 */ long biSizeImage。 /* 實際圖像大小,必須是 4的倍數(shù) */ long biXPelsPerMeter。 /* 水平方向每米像素數(shù) */ long biYPelsPerMeter。 /* 垂直方向每米像素數(shù) */ long biClrUsed。 /* 所用顏色數(shù) */ long biClrImportant。 /* 重要的顏色數(shù) */ } BITMAPINFOHEADER。 應用實例 程序片段 94 第 3章 高級編程技術的實現(xiàn) 圖像技術: SVGA模式顯示 BMP圖像實例 /*調色板 */ typedef struct tagRGBQUAD { char rgbBlue。 /*藍色分量 */ char rgbGreen。 /*綠色分量 */ char rgbRed。 /*紅色分量 */ char rgbReserved。 } RGBQUAD。 應用實例 程序片段 95 第 3章 高級編程技術的實現(xiàn) 圖像技術: SVGA模式顯示 BMP圖像實例 /*換頁函數(shù) */ void selectpage(register char page) { union REGS r。 =0x4f05。 =0。 =page。 /*選擇頁面 */ int86(0x10,amp。r,amp。r)。 } 應用實例 程序片段 96 第 3章 高級編程技術的實現(xiàn) 圖像技術: SVGA模式顯示 BMP圖像實例 /*設置 SVGA屏幕模式 */ /*101H256色 640 480模式 */ /*103H256色 800 600模式 */ /*105H256色 1024 768模式 */ unsigned char set_SVGA_mode(int vmode) { union REGS r。 =0x4f02。 =vmode。 int86(0x10,amp。r,amp。r)。 return()。 } 應用實例 程序片段 97 第 3章 高級編程技術的實現(xiàn) 圖像技術: SVGA模式顯示 BMP圖像實例 /*獲取當前 SVGA屏幕模式 */ unsigned int get_SVGA_mode() { union REGS r。 =0x4f03。 int86(0x10,amp。r,amp。r)。 return()。 } 應用實例 程序片段 98 第 3章 高級編程技術的實現(xiàn) 圖像技術: SVGA模式顯示 BMP圖像實例 /*設置調色板 */ void set_SVGA_palette(unsigned char r[], unsigned char g[], unsigned char b[]) { int k。 for (k = 0。 k 256。 k++) { outportb(0x03C8,k)。 outportb(0x03C9,r[k]2)。 outportb(0x03C9,g[k]2)。 outportb(0x03C9,b[k]2)。 } } 應用實例 程序片段 99 第 3章 高級編程技術的實現(xiàn) 主要內容 操作手段 顯示方式 圖形繪制技術 圖像技術 動畫技術 發(fā)聲技術 漢字顯示技術 精確的時間控制技術 100 第 3章 高級編程技術的實現(xiàn) 動畫技術 ?在實際應用中 , 經常會遇到要求產生動態(tài)畫面的情況 ?電影或動畫片是由一張張圖像組成的 , 利用人眼不能夠分辨出時間間隔在 25毫秒內的動態(tài)圖像變化這一特性 , 當這些連續(xù)圖像被放映時 , 從視覺效果上給人以動的感覺 。 101 第 3章 高級編程技術的實現(xiàn) 動畫技術: 簡單的實現(xiàn)方法 利用 cleardevice()和 delay()函數(shù)相互配合,先畫一幅圖形,讓它延遲一個時間,然后清屏,再畫另一幅,如此反復,形成動態(tài)效果。 102 第 3章 高級編程技術的實現(xiàn) 動畫技術: 利用動態(tài)開辟圖視口 ?利用圖視口設置技術 , 可以實現(xiàn)圖視口動畫效果 ?例如可在不同圖視口中設置同樣的圖像 , 而讓圖視口沿 x軸方向移動設置 , 這次出現(xiàn)前要清除上次圖視口的內容 , 這樣就會出現(xiàn)圖像沿 x軸移動的效果 。 ?也就是 , 在位置動態(tài)變化 , 但大小不變的圖視口中 (用 setviewpot()函數(shù) ), 設置固定圖形 (也可是微小變化的圖像 ), 這樣雖呈現(xiàn)在觀察者面前的是當前圖視口位置在動態(tài)變化 , 但視覺上卻象是看到圖像在屏幕上動態(tài)變化一樣 。 103 第 3章 高級編程技術的實現(xiàn) 動畫技術: 利用動態(tài)開辟圖視口 應用實例 源程序 include include main() { int i,graphdriver,graphmode。 graphdriver=DETECT。 initgraph(amp。graphdriver,amp。graphmode,“”)。 for(i=0。i25。i++) { setfillstyle(1,i)。 movebar(i * 20)。 } closegraph()。 } movebar(int xorig) /*設窗口并畫填色小立方體 */ { setviewport(xorig,0,639,199,1)。 setcolor(5)。 bar3d(10,120,60,150,40,1)。 floodfill(70,130,5)。 floodfill(30,110,5)。 delay(250000)。 clearviewport()。 } 104 第 3章 高級編程技術的實現(xiàn) 動畫技術: 利用動態(tài)開辟圖視口 不斷的沿 x軸開辟圖視窗口,就像一個大小一樣的窗口沿 x軸在移動,由于總有 clearviewport函數(shù)清除上次窗口的相同立方體,因而視覺效果上,就像一個立方體從左向右移動一樣。程序中定義的 movebar函數(shù)作用是開辟一個圖視窗口,并畫一個填色的立方體,保留一陣( delay(250000))然后清除它,主程序不斷調用它,因每次頂點 x坐標在增加,因而效果是立方體沿 x軸從左向右在運動。 應用實例 例程說明 105 第 3章 高級編程技術的實現(xiàn) 動畫技術 采用上面的兩種方法對較復雜圖形不宜: 一、畫圖形要占較長時間, 二、圖視口位置切換的時間就變得較長,因而動畫效果就會變差。 106 第 3章 高級編程技術的實現(xiàn) 動畫技術: 屏幕圖像存儲再放 同制作幻燈片一樣 , 將整個動畫過程變成一個個片斷, 然后存到顯示緩沖區(qū)內 , 當把它們按順序重放到屏幕上時 , 就出現(xiàn)了動畫效果 , 這可以用 getimage()和putimage()函數(shù)來實現(xiàn) 。 這種方法較快 , 因它已事先將要重放的畫面畫好 , 之后要做的事就是計算應在什么位置重放存放好的屏幕圖像了 。 107 第 3章 高級編程技術的實現(xiàn) 動畫技術: 頁交替的方法 ?圖形方式下存儲在 VRAM中的一滿屏圖像信息稱為一頁 , 每頁一般為 64K字節(jié) , VRAM可以存儲要顯示的圖像幾個頁 。 通過設置顯示頁函數(shù) , 激活不同顯示頁實現(xiàn)動畫效果 。 ?Turbo C支持頁的功能有限 , 按在圖形方式下顯示的模式最多支持 4頁 (EGALO顯示方式 ), 一般為兩頁 (注意對 CGA, 僅有一頁 ), 因存儲圖像的頁顯示時 , 一次只能顯示一頁 , 因此必須設定某頁為當前顯示的頁 (又稱可視頁 ), 缺省時定為 0頁 。 108 第 3章 高級編程技術的實現(xiàn) 動畫技術: 頁交替的方法 當前顯示頁 ( 可視頁 ) : 當前顯示在屏幕上的頁面 當前編輯頁 ( 激活頁 ) : 正在由用戶編輯圖形的頁 。這個頁不等于顯示頁 , 即若用戶不設定該頁為當前顯示頁時 , 在該頁上編輯的圖形將不會在屏幕上顯示出來 。 缺省時 , 設定 0頁為當前編輯頁 , 又為當前顯示頁 。 109 第 3章 高級編程技術的實現(xiàn) 動畫技術: 頁交替的方法 ? 設置激活頁和顯示頁的函數(shù)如下: ? void far setactivepage(int pagenum)。 ? void far setvisualpage(int pagenum)。 ?這兩個函數(shù)只能用于 EGA、 VGA等顯示適配器。前者設置由 pagenum指出的頁為激活的頁,后者設置可顯示的頁。 ?當設定了激活的頁,即編輯頁后,則程序中其后的畫圖操作均在該頁進行,若它不定為顯示頁,則其上的圖像信息并不會在屏幕上顯示出來。 110 第 3章 高級編程技術的實現(xiàn) 動畫技術: 頁交替的方法 首先設置 l頁為編輯頁,在上面畫出一個紅色邊框、用淡綠色填充的圓,此圖并不顯示出來 (因缺省時,定義 0頁為可視頁 )。接著又定義 0頁為編輯頁并清屏,也定義 0頁為可視頁,并在其上畫出一個用洋紅色填充的方塊,該方塊將在屏幕上顯示出來。接著進入 do循環(huán),設置 l頁為可視頁,因而其上的圓便在屏幕上顯示出來,方塊的圖像消失,用delay(2020)將圓圖像保持 2020毫秒即 2秒,當不按鍵時,下一次循環(huán)又將 0頁設為可視頁,因而方塊的圖像顯示出來,圓圖像又消失。保持 2秒后,又重復剛開始的過程。這樣我們就會看到:屏幕上同一位置洋紅色圓和淡綠色方塊交替出現(xiàn),若將 delay時間變少,將會出現(xiàn)動畫的效果。 應用實例 例程描述 111 第 3章 高級編程技術的實現(xiàn) 動畫技術: 頁交替的方法 應用實例 源程序 include include main() { int i,graphdriver,graphmode,size,page。 graphdriver=DETECT。 initgraph(amp。graphdriver,amp。graphmode,)。 cleardevice()。 setactivepage(1)。 /*設置 l頁為編輯頁 */ setbkcolor(BLUE)。 setcolor(RED)。 setfillstyle(1,10)。 circle(130,270,30)。 /*畫圓 */ floodfill(130,270,4)。 /*用淡綠色填充圓 */ setactivepage(0)。 /*設置 0頁為編輯頁 */ cleardevice()。 /*清 0頁 */ setfillstyle(1,5)。 bar(100,210,160,270)。 /*畫方塊并填充洋紅色 */ setvisualpage(0)。 /*設置 0頁為可視頁 */ page=1。 do { setvisualpage(page)。/*顯示設定頁的圖像 */ delay(2020)。 /*延遲 2020ms*/ page=page1。 if(page0) page=1。 } while(!kbhit())。 getch()。 closegraph()。 } 112 第 3章 高級編程技術的實現(xiàn) 主要內容 操作手段 顯示方式 圖形繪制技術 圖像技術 動畫技術 發(fā)聲技術 漢字顯示技術 精確的時間控制技術 113 第 3章 高級編程技術的實現(xiàn) 發(fā)聲技術 計算機發(fā)聲原理 : 在揚聲器電路中,定時器的頻率決定了揚聲器發(fā)音的頻率,通過設定定時器電路的頻率使揚聲器發(fā)出不同的聲音。 發(fā)聲函數(shù): void sound(unsigned frequency); - 入口參數(shù)為揚聲器要產生聲音的頻率。 void nosound(void); - 函數(shù)用于關閉揚聲器。
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1