⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 王大刚--c语言编程宝典--图形函数.htm

📁 初学者的良师益友。其中包括C的全部教程。
💻 HTM
📖 第 1 页 / 共 5 页
字号:
      4          2色  320*200 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      ATT400HI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2色&nbsp; 320*200 
      <BR>─────────────────────────────────── <BR>&nbsp;&nbsp;&nbsp; 
      VGA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      VGALO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16色&nbsp; 640*200 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      VGAMED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16色&nbsp; 640*350 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      VGAHI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16色&nbsp; 640*480 
      <BR>─────────────────────────────────── <BR>&nbsp;&nbsp;&nbsp; 
      PC3270&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      PC3270HI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2色&nbsp; 720*350 
      <BR>─────────────────────────────────── <BR>&nbsp;&nbsp;&nbsp; 
      DETECT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用于硬件测试 
      <BR>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ <BR>
      <P>&nbsp;&nbsp;&nbsp; 例4. 使用图形初始化函数设置VGA高分辨率图形模式 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp; #include &lt;graphics.h&gt; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp; int main() <BR>&nbsp;&nbsp;&nbsp;&nbsp; { 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int gdriver, 
      gmode; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      gdriver=VGA; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      gmode=VGAHI; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      initgraph(&amp;gdriver, &amp;gmode, "c:\\tc"); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bar3d(100, 100, 
      300, 250, 50, 1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*画一长方体*/ 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getch(); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; closegraph(); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp; } <BR>
      <P>&nbsp;&nbsp;&nbsp; 有时编程者并不知道所用的图形显示器适配器种类, 或者需要将编写的程序 <BR>用于不同图形驱动器, 
      Turbo C提供了一个自动检测显示器硬件的函数,&nbsp; 其调用 <BR>格式为: <BR>&nbsp;&nbsp;&nbsp;&nbsp; 
      void far detectgraph(int *gdriver, *gmode); <BR>&nbsp;&nbsp;&nbsp; 
      其中gdriver和gmode的意义与上面相同。 <BR>&nbsp; <BR>&nbsp;&nbsp;&nbsp; 例5. 
      自动进行硬件测试后进行图形初始化 <BR>&nbsp;&nbsp;&nbsp;&nbsp; #include &lt;graphics.h&gt; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp; int main() <BR>&nbsp;&nbsp;&nbsp;&nbsp; { 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int gdriver, 
      gmode; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      detectgraph(&amp;gdriver, &amp;gmode);&nbsp;&nbsp;&nbsp;&nbsp; /*自动测试硬件*/ 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("the 
      graphics driver is %d, mode is %d\n", gdriver, 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      gmode);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*输出测试结果*/ 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getch(); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      initgraph(&amp;gdriver, &amp;gmode, "c:\\tc"); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      /* 根据测试结果初始化图形*/ 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bar3d(10, 10, 
      130, 250, 20, 1); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getch(); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; closegraph(); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <BR>
      <P>&nbsp;&nbsp;&nbsp; 上例程序中先对图形显示器自动检测, 然后再用图形初始化函数进行初始化 <BR>设置, 但Turbo 
      C提供了一种更简单的方法,&nbsp; 即用gdriver= DETECT 语句后再跟 <BR>initgraph()函数就行了。采用这种方法后, 
      上例可改为: <BR>&nbsp; <BR>&nbsp;&nbsp;&nbsp; 例6. <BR>&nbsp;&nbsp;&nbsp;&nbsp; 
      #include &lt;graphics.h&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp; int main() 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp; { 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int 
      gdriver=DETECT, gmode; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      initgraph(&amp;gdriver, &amp;gmode, "c:\\tc"); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bar3d(50, 50, 
      150, 30, 1); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      getch(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      closegraph(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      return 0; <BR>&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; 另外, Turbo 
      C提供了退出图形状态的函数closegraph(), 其调用格式为: <BR>&nbsp;&nbsp;&nbsp;&nbsp; void far 
      closegraph(void); <BR>&nbsp;&nbsp;&nbsp; 调用该函数后可退出图形状态而进入文本方式(Turbo C 
      默认方式), 并释放 <BR>用于保存图形驱动程序和字体的系统内存。 <BR>
      <P>&nbsp;&nbsp;&nbsp; 2. 独立图形运行程序的建立 <BR>&nbsp;&nbsp;&nbsp; Turbo 
      C对于用initgraph()函数直接进行的图形初始化程序, 在编译和链接 <BR>时并没有将相应的驱动程序(*.BGI)装入到执行程序, 
      当程序进行到intitgraph() <BR>语句时, 再从该函数中第三个形式参数char *path中所规定的路径中去找相应的 
      <BR>驱动程序。若没有驱动程序, 则在C:\TC中去找, 如C:\TC中仍没有或TC不存在, <BR>将会出现错误: 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp; BGI Error: Graphics not initialized (use 
      'initgraph') <BR>&nbsp;&nbsp;&nbsp; 因此, 为了使用方便, 应该建立一个不需要驱动程序就能独立运行的可执行 
      <BR>图形程序,Turbo C中规定用下述步骤(这里以EGA、VGA显示器为例): <BR>&nbsp;&nbsp;&nbsp; 1. 
      在C:\TC子目录下输入命令:BGIOBJ EGAVGA <BR>&nbsp;&nbsp;&nbsp; 
      此命令将驱动程序EGAVGA.BGI转换成EGAVGA.OBJ的目标文件。 <BR>&nbsp;&nbsp;&nbsp; 2. 
      在C:\TC子目录下输入命令:TLIB LIB\GRAPHICS.LIB+EGAVGA <BR>&nbsp;&nbsp;&nbsp; 
      此命令的意思是将EGAVGA.OBJ的目标模块装到GRAPHICS.LIB库文件中。 <BR>&nbsp;&nbsp;&nbsp; 3. 
      在程序中initgraph()函数调用之前加上一句: <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      registerbgidriver(EGAVGA_driver): 
      <BR>该函数告诉连接程序在连接时把EGAVGA的驱动程序装入到用户的执行程序中。 <BR>&nbsp;&nbsp;&nbsp; 
      经过上面处理,编译链接后的执行程序可在任何目录或其它兼容机上运行。 <BR>假设已作了前两个步骤,若再向例6中加 
      registerbgidriver()函数则变成: <BR>&nbsp;&nbsp;&nbsp; 例7: 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp; #include&lt;stdio.h&gt; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp; #include&lt;graphics.h&gt; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp; int main() <BR>&nbsp;&nbsp;&nbsp;&nbsp; { 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int 
      gdriver=DETECT,gmode; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      registerbgidriver(EGAVGA_driver):&nbsp; / *建立独立图形运行程序 */ 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; initgraph( gdriver, 
      gmode,"c:\\tc"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      bar3d(50,50,250,150,20,1); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getch(); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; closegraph(); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp; } <BR>&nbsp;&nbsp;&nbsp; 上例编译链接后产生的执行程序可独立运行。 
      <BR>&nbsp;&nbsp;&nbsp; 如不初始化成EGA或CGA分辨率, 而想初始化为CGA分辨率,&nbsp; 则只需要将上述 
      <BR>步骤中有EGAVGA的地方用CGA代替即可。 <BR>
      <P>&nbsp;&nbsp;&nbsp; 3.屏幕颜色的设置和清屏函数 <BR>&nbsp;&nbsp;&nbsp; 对于图形模式的屏幕颜色设置, 
      同样分为背景色的设置和前景色的设置。在 <BR>Turbo C中分别用下面两个函数。 <BR>&nbsp;&nbsp;&nbsp; 
      设置背景色:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void far setbkcolor( int 
      color); <BR>&nbsp;&nbsp;&nbsp; 
      设置作图色:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void far setcolor(int 
      color); <BR>&nbsp;&nbsp;&nbsp; 其中color 为图形方式下颜色的规定数值, 对EGA, VGA显示器适配器, 有关 
      <BR>颜色的符号常数及数值见下表所示。 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      表3 有关屏幕颜色的符号常数表 <BR>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ <BR>&nbsp; 
      符号常数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 数值&nbsp;&nbsp;&nbsp;&nbsp; 
      含义&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      符号常数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 数值&nbsp;&nbsp;&nbsp;&nbsp; 含义 
      <BR>─────────────────────────────────── <BR>&nbsp; 
      BLACK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      黑色&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      DARKGRAY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 深灰 <BR>&nbsp; 
      BLUE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      兰色&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      LIGHTBLUE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 深兰 <BR>&nbsp; 
      GREEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      绿色&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      LIGHTGREEN&nbsp;&nbsp;&nbsp;&nbsp; 10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 淡绿 
      <BR>&nbsp; 
      CYAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      青色&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      LIGHTCYAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      淡青 <BR>&nbsp; 
      RED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      红色&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      LIGHTRED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 淡红 <BR>&nbsp; 
      MAGENTA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      洋红&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      LIGHTMAGENTA&nbsp;&nbsp; 13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 淡洋红 <BR>&nbsp; 
      BROWN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      棕色&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      YELLOW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 黄色 <BR>&nbsp; 
      LIGHTGRAY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      淡灰&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -