亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? +?

?? c編程技巧文檔
??
字號:
作者:hooke
日期:2000-9-24 21:46:13
圖形函數 
    Turbo C提供了非常豐富的圖形函數, 所有圖形函數的原型均在graphics. h 
中, 本節主要介紹圖形模式的初始化、獨立圖形程序的建立、基本圖形功能、圖 
形窗口以及圖形模式下的文本輸出等函數。另外, 使用圖形函數時要確保有顯示 
器圖形驅動程序*BGI, 同時將集成開發環境Options/Linker中的Graphics lib選 
為on, 只有這樣才能保證正確使用圖形函數。 
    1. 圖形模式的初始化 
    不同的顯示器適配器有不同的圖形分辨率。即是同一顯示器適配器, 在不同 
模式下也有不同分辨率。因此, 在屏幕作圖之前, 必須根據顯示器適配器種類將 
顯示器設置成為某種圖形模式, 在未設置圖形模式之前, 微機系統默認屏幕為文 
本模式(80列, 25行字符模式), 此時所有圖形函數均不能工作。設置屏幕為圖形 
模式, 可用下列圖形初始化函數: 
     void far initgraph(int far *gdriver, int far *gmode, char *path); 
    其中gdriver和gmode分別表示圖形驅動器和模式, path是指圖形驅動程序所 
在的目錄路徑。有關圖形驅動器、圖形模式的符號常數及對應的分辨率見表2。 
    圖形驅動程序由Turbo C出版商提供, 文件擴展名為.BGI。根據不同的圖形 
適配器有不同的圖形驅動程序。例如對于EGA、 VGA 圖形適配器就調用驅動程序 
EGAVGA.BGI。 

               表2. 圖形驅動器、模式的符號常數及數值 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
     圖形驅動器(gdriver)          圖形模式(gmode) 
   ───────────     ───────────    色調  分辨率 
    符號常數    數值           符號常數     數值 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
    CGA          1            CGAC0           0          C0   320*200 
                              CGAC1           1          C1   320*200 
                              CGAC2           2          C2   320*200 
                              CGAC3           3          C3   320*200 
                              CGAHI           4          2色  640*200 
─────────────────────────────────── 
    MCGA         2            MCGAC0          0          C0   320*200 
                              MCGAC1          1          C1   320*200 
                              MCGAC2          2          C2   320*200 
                              MCGAC3          3          C3   320*200 
                              MCGAMED         4          2色  640*200 
                              MCGAHI          5          2色  640*480 
─────────────────────────────────── 
    EGA          3            EGALO           0         16色  640*200 
                              EGAHI           1         16色  640*350 
─────────────────────────────────── 
    EGA64        4            EGA64LO         0         16色  640*200 
                              EGA64HI         1          4色  640*350 
─────────────────────────────────── 
    EGAMON       5            EGAMONHI        0          2色  640*350 
─────────────────────────────────── 
    IBM8514      6            IBM8514LO       0        256色  640*480 
                              IBM8514HI       1        256色 1024*768 
─────────────────────────────────── 
    HERC         7            HERCMONOHI      0          2色  720*348 
─────────────────────────────────── 
    ATT400       8            ATT400C0        0          C0   320*200 
                              ATT400C1        1          C1   320*200 
                              ATT400C2        2          C2   320*200 
                              ATT400C3        3          C3   320*200 
                              ATT400MED       4          2色  320*200 
                              ATT400HI        5          2色  320*200 
─────────────────────────────────── 
    VGA          9            VGALO           0         16色  640*200 
                              VGAMED          1         16色  640*350 
                              VGAHI           2         16色  640*480 
─────────────────────────────────── 
    PC3270       10           PC3270HI        0          2色  720*350 
─────────────────────────────────── 
    DETECT       0            用于硬件測試 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

    例4. 使用圖形初始化函數設置VGA高分辨率圖形模式 
     #include <graphics.h> 
     int main() 
     { 
          int gdriver, gmode; 
          gdriver=VGA; 
          gmode=VGAHI; 
          initgraph(&gdriver, &gmode, "c:\\tc"); 
          bar3d(100, 100, 300, 250, 50, 1);       /*畫一長方體*/ 
          getch(); 
          closegraph(); 
          return 0; 
     } 

    有時編程者并不知道所用的圖形顯示器適配器種類, 或者需要將編寫的程序 
用于不同圖形驅動器, Turbo C提供了一個自動檢測顯示器硬件的函數,  其調用 
格式為: 
     void far detectgraph(int *gdriver, *gmode); 
    其中gdriver和gmode的意義與上面相同。 
  
    例5. 自動進行硬件測試后進行圖形初始化 
     #include <graphics.h> 
     int main() 
     { 
          int gdriver, gmode; 
          detectgraph(&gdriver, &gmode);     /*自動測試硬件*/ 
          printf("the graphics driver is %d, mode is %d\n", gdriver, 
                 gmode);       /*輸出測試結果*/ 
          getch(); 
          initgraph(&gdriver, &gmode, "c:\\tc"); 
                               /* 根據測試結果初始化圖形*/ 
          bar3d(10, 10, 130, 250, 20, 1); 
          getch(); 
          closegraph(); 
          return 0; 
      } 

    上例程序中先對圖形顯示器自動檢測, 然后再用圖形初始化函數進行初始化 
設置, 但Turbo C提供了一種更簡單的方法,  即用gdriver= DETECT 語句后再跟 
initgraph()函數就行了。采用這種方法后, 上例可改為: 
  
    例6. 
     #include <graphics.h> 
     int main() 
     { 
          int gdriver=DETECT, gmode; 
          initgraph(&gdriver, &gmode, "c:\\tc"); 
          bar3d(50, 50, 150, 30, 1); 
          getch(); 
          closegraph(); 
          return 0; 
     } 
    另外, Turbo C提供了退出圖形狀態的函數closegraph(), 其調用格式為: 
     void far closegraph(void); 
    調用該函數后可退出圖形狀態而進入文本方式(Turbo C 默認方式), 并釋放 
用于保存圖形驅動程序和字體的系統內存。 

    2. 獨立圖形運行程序的建立 
    Turbo C對于用initgraph()函數直接進行的圖形初始化程序, 在編譯和鏈接 
時并沒有將相應的驅動程序(*.BGI)裝入到執行程序, 當程序進行到intitgraph() 
語句時, 再從該函數中第三個形式參數char *path中所規定的路徑中去找相應的 
驅動程序。若沒有驅動程序, 則在C:\TC中去找, 如C:\TC中仍沒有或TC不存在, 
將會出現錯誤: 
     BGI Error: Graphics not initialized (use 'initgraph') 
    因此, 為了使用方便, 應該建立一個不需要驅動程序就能獨立運行的可執行 
圖形程序,Turbo C中規定用下述步驟(這里以EGA、VGA顯示器為例): 
    1. 在C:\TC子目錄下輸入命令:BGIOBJ EGAVGA 
    此命令將驅動程序EGAVGA.BGI轉換成EGAVGA.OBJ的目標文件。 
    2. 在C:\TC子目錄下輸入命令:TLIB LIB\GRAPHICS.LIB+EGAVGA 
    此命令的意思是將EGAVGA.OBJ的目標模塊裝到GRAPHICS.LIB庫文件中。 
    3. 在程序中initgraph()函數調用之前加上一句: 
       registerbgidriver(EGAVGA_driver): 
該函數告訴連接程序在連接時把EGAVGA的驅動程序裝入到用戶的執行程序中。 
    經過上面處理,編譯鏈接后的執行程序可在任何目錄或其它兼容機上運行。 
假設已作了前兩個步驟,若再向例6中加 registerbgidriver()函數則變成: 
    例7: 
     #include<stdio.h> 
     #include<graphics.h> 
     int main() 
     { 
         int gdriver=DETECT,gmode; 
         registerbgidriver(EGAVGA_driver):  / *建立獨立圖形運行程序 */ 
         initgraph( gdriver, gmode,"c:\\tc"); 
         bar3d(50,50,250,150,20,1); 
         getch(); 
         closegraph(); 
         return 0; 
     } 
    上例編譯鏈接后產生的執行程序可獨立運行。 
    如不初始化成EGA或CGA分辨率, 而想初始化為CGA分辨率,  則只需要將上述 
步驟中有EGAVGA的地方用CGA代替即可。 

    3.屏幕顏色的設置和清屏函數 
    對于圖形模式的屏幕顏色設置, 同樣分為背景色的設置和前景色的設置。在 
Turbo C中分別用下面兩個函數。 
    設置背景色:        void far setbkcolor( int color); 
    設置作圖色:        void far setcolor(int color); 
    其中color 為圖形方式下顏色的規定數值, 對EGA, VGA顯示器適配器, 有關 
顏色的符號常數及數值見下表所示。 
                表3 有關屏幕顏色的符號常數表 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
  符號常數      數值     含義           符號常數      數值     含義 
─────────────────────────────────── 
  BLACK          0       黑色           DARKGRAY       8       深灰 
  BLUE           1       蘭色           LIGHTBLUE      9       深蘭 
  GREEN          2       綠色           LIGHTGREEN     10      淡綠 
  CYAN           3       青色           LIGHTCYAN      11      淡青 
  RED            4       紅色           LIGHTRED       12      淡紅 
  MAGENTA        5       洋紅           LIGHTMAGENTA   13      淡洋紅 
  BROWN          6       棕色           YELLOW         14      黃色 
  LIGHTGRAY      7       淡灰           WHITE          15      白色 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
    對于CGA適配器, 背景色可以為表3中16種顏色的一種, 但前景色依賴于不同 
的調色板。共有四種調色板, 每種調色板上有四種顏色可供選擇。不同調色板所 
對應的原色見表4。 
               表4 CGA調色板與顏色值表 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
       調色板                               顏色值 
───────────       ────────────────── 
  符號常數    數值              0         1         2         3 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
      C0       0               背景       綠        紅        黃 
      C1       1               背景       青       洋紅       白 
      C2       2               背景      淡綠      淡紅       黃 
      C3       3               背景      淡青     淡洋紅      白 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

    清除圖形屏幕內容使用清屏函數, 其調用格式如下: 
     voide far cleardevice(void); 
    有關顏色設置、清屏函數的使用請看例8。 
    例8: 
     #include<stdio.h> 
     #include<graphics.h> 
     int main() 
     { 
          int gdriver, gmode, i; 
          gdriver=DETECT; 
          registerbgidriver(EGAVGA_DRIVER);/*建立獨立圖形運行程序*/ 
          initgraph(&gdriver, &gmode", "");/*圖形初始化*/ 
          setbkcolor(0);                   /*設置圖形背景*/ 
          cleardevice(); 
          for(i=0; i<=15; i++) 
          { 
            setcolor(i);                   /*設置不同作圖色*/ 
            circle(320, 240, 20+i*10);     /*畫半徑不同的圓*/ 
            delay(100);                    /*延遲100毫秒*/ 
          } 
          for(i=0; i<=15; i++) 
          { 
             setbkcolor(i);                /*設置不同背景色*/ 
             cleardevice(); 
             circle(320, 240, 20+i*10); 
             delay(100); 
          } 
          closegraph(); 
          return 0; 
     } 

    另外, TURBO C也提供了幾個獲得現行顏色設置情況的函數。 
    int far getbkcolor(void);      返回現行背景顏色值。 
    int far getcolor(void);        返回現行作圖顏色值。 
    int far getmaxcolor(void);     返回最高可用的顏色值。 

    4. 基本圖形函數 
    基本圖形函數包括畫點, 線以及其它一些基本圖形的函數。本節對這些函數 
作一全面的介紹。 

    一、畫點 
    1. 畫點函數 
     void far putpixel(int x, int y, int color); 
    該函數表示有指定的象元畫一個按color所確定顏色的點。對于顏色color的 
值可從表3中獲得而對x, y是指圖形象元的坐標。 
    在圖形模式下, 是按象元來定義坐標的。對VGA適配器,  它的最高分辨率為 
640x480, 其中640為整個屏幕從左到右所有象元的個數, 480 為整個屏幕從上到 
下所有象元的個數。屏幕的左上角坐標為(0, 0), 右下角坐標為(639, 479), 水 
平方向從左到右為x軸正向, 垂直方向從上到下為y軸正向。TURBO C 的圖形函數 
都是相對于圖形屏幕坐標, 即象元來說的。 
    關于點的另外一個函數是: 
     int far getpixel(int x, int y); 
    它獲得當前點(x, y)的顏色值。 

    2. 有關坐標位置的函數 

     int far getmaxx(void); 
    返回x軸的最大值。 

     int far getmaxy(void); 
    返回y軸的最大值。 

     int far getx(void); 
    返回游標在x軸的位置。 

     void far gety(void); 
    返回游標有y軸的位置。 

     void far moveto(int x, int y); 
    移動游標到(x, y)點, 不是畫點, 在移動過程中亦畫點。 

     void far moverel(int dx, int dy); 
    移動游標從現行位置(x, y)移動到(x+dx, y+dy)的位置, 移動過程中不畫點。 
  

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费看日韩a级影片| 日韩欧美激情四射| 一区二区三区在线影院| 91免费看视频| 亚洲一区二区三区爽爽爽爽爽| 99久久精品国产毛片| 亚洲精品国久久99热| 欧美日韩中文精品| 午夜精品久久久久久久99樱桃| 91.麻豆视频| 国产一区999| 亚洲欧洲日韩av| 欧美午夜免费电影| 久久精品久久综合| 欧美极品另类videosde| 91丨porny丨在线| 亚洲mv在线观看| 亚洲精品一区二区三区福利| 成人毛片老司机大片| 亚洲综合偷拍欧美一区色| 7777精品伊人久久久大香线蕉超级流畅| 蜜臀av性久久久久蜜臀aⅴ四虎 | 91色九色蝌蚪| 午夜亚洲国产au精品一区二区| 欧美一区午夜精品| 成人黄色小视频在线观看| 亚洲成人三级小说| 久久久精品一品道一区| 日本精品一级二级| 国模冰冰炮一区二区| 亚洲激情在线激情| 337p粉嫩大胆噜噜噜噜噜91av | 精品一区二区在线视频| 国产精品区一区二区三| 欧美精品在线观看播放| 国产乱对白刺激视频不卡| 一区二区三区日韩在线观看| 精品女同一区二区| 欧美图区在线视频| 高潮精品一区videoshd| 天天操天天干天天综合网| 国产精品天干天干在观线| 欧美高清激情brazzers| 99精品桃花视频在线观看| 精品在线一区二区三区| 亚洲一区影音先锋| 国产精品人人做人人爽人人添| 欧美精品777| 日本黄色一区二区| 丁香五精品蜜臀久久久久99网站 | 久久精品夜色噜噜亚洲a∨| 91国产视频在线观看| 国产ts人妖一区二区| 全国精品久久少妇| 亚洲国产日韩a在线播放| 中文字幕乱码亚洲精品一区| 日韩精品中文字幕在线不卡尤物| 91福利小视频| 97精品国产97久久久久久久久久久久| 黄色日韩三级电影| 热久久久久久久| 亚洲成人av一区二区三区| 一区二区三区国产| 亚洲色图视频网| 国产精品久线观看视频| 国产偷国产偷亚洲高清人白洁 | 一区二区三区四区视频精品免费 | 日本一区二区三级电影在线观看| 欧美zozozo| 欧美一区二区私人影院日本| 欧美写真视频网站| 欧美三片在线视频观看| 色婷婷av一区二区三区大白胸| 97久久精品人人爽人人爽蜜臀| 不卡影院免费观看| 波多野结衣中文字幕一区| 国产91丝袜在线播放| 国产精品99久久久久久有的能看| 国产一区二区三区免费播放| 国产在线播放一区| 国产福利视频一区二区三区| 国内精品久久久久影院薰衣草| 麻豆精品一区二区av白丝在线| 免费在线一区观看| 久久成人精品无人区| 狠狠色狠狠色综合| 盗摄精品av一区二区三区| 成人蜜臀av电影| 色婷婷精品久久二区二区蜜臀av | 日本午夜精品视频在线观看| 免费精品视频最新在线| 捆绑变态av一区二区三区| 麻豆视频观看网址久久| 国产中文一区二区三区| 成人免费毛片片v| 99久久99久久精品免费观看| 欧美在线观看18| 4hu四虎永久在线影院成人| 精品理论电影在线观看| 国产拍欧美日韩视频二区| 亚洲天堂成人网| 亚洲国产wwwccc36天堂| 免费日本视频一区| 国产精品资源在线| 色综合久久久久综合| 69堂国产成人免费视频| 国产午夜精品一区二区三区嫩草| 成人免费在线观看入口| 午夜精品久久久久| 国产99一区视频免费| 91麻豆swag| 日韩亚洲电影在线| 1024国产精品| 蜜臀av亚洲一区中文字幕| av中文字幕一区| 91麻豆精品91久久久久同性| 久久精品亚洲麻豆av一区二区 | 久久久久国产精品麻豆ai换脸| 国产精品免费视频网站| 午夜久久久影院| 成人综合婷婷国产精品久久 | 日韩欧美国产一二三区| 国产精品日韩精品欧美在线| 性久久久久久久久久久久| 国产一区二区三区香蕉| 欧美日韩一区二区不卡| 久久蜜桃av一区精品变态类天堂| 亚洲一二三专区| 国产91在线看| 日韩精品一区二区三区视频| 亚洲男女一区二区三区| 久久精品国产亚洲5555| 欧美伊人久久久久久午夜久久久久| 欧美变态tickling挠脚心| 一区二区三区加勒比av| 国产99精品在线观看| 欧美一级专区免费大片| 一区二区三区美女| 成人午夜av电影| 久久嫩草精品久久久精品一| 午夜日韩在线电影| 色又黄又爽网站www久久| 日本一区二区三区四区| 经典三级视频一区| 欧美一区在线视频| 亚洲国产精品一区二区久久| 成人国产精品免费观看视频| 精品国产成人系列| 欧美aa在线视频| 91.xcao| 一区二区免费看| av影院午夜一区| 国产精品伦一区二区三级视频| 久久精品免费看| 日韩三级在线观看| 亚洲一本大道在线| 色94色欧美sute亚洲13| 亚洲欧美另类小说| aaa亚洲精品| 1区2区3区欧美| 不卡影院免费观看| 亚洲婷婷在线视频| 一本大道久久a久久精品综合| 国产亚洲欧美日韩日本| 国内久久精品视频| 国产亚洲精品久| 国产精品原创巨作av| 久久久国产午夜精品 | 亚洲欧洲日韩一区二区三区| 国产69精品久久777的优势| 国产亚洲成年网址在线观看| 国产精品白丝jk黑袜喷水| 欧美国产精品专区| av在线播放一区二区三区| 亚洲免费高清视频在线| 在线观看成人免费视频| 一级女性全黄久久生活片免费| 91久久人澡人人添人人爽欧美| 亚洲一本大道在线| 6080国产精品一区二区| 日本一道高清亚洲日美韩| 欧美一二三区在线| 国产乱码精品一区二区三区五月婷 | 欧美激情一区二区三区全黄| 成年人午夜久久久| 一区二区三区国产豹纹内裤在线| 精品视频在线免费| 美女尤物国产一区| 中文字幕的久久| 色婷婷综合久久久中文字幕| 亚洲成a人v欧美综合天堂下载| 欧美日韩大陆一区二区| 久久se精品一区二区| 国产午夜精品久久久久久免费视| 波多野结衣欧美| 亚洲国产日韩a在线播放性色| 日韩欧美精品三级| 99久久夜色精品国产网站| 午夜视频一区二区三区| 国产欧美一区二区三区鸳鸯浴 |