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

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

📁 初学者的良师益友。其中包括C的全部教程。
💻 HTM
📖 第 1 页 / 共 5 页
字号:
      WHITE          
      15      白色 
      <BR>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ <BR>&nbsp;&nbsp;&nbsp; 对于CGA适配器, 
      背景色可以为表3中16种颜色的一种, 但前景色依赖于不同 <BR>的调色板。共有四种调色板, 每种调色板上有四种颜色可供选择。不同调色板所 
      <BR>对应的原色见表4。 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      表4 CGA调色板与颜色值表 <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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      颜色值 <BR>───────────&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ────────────────── 
      <BR>&nbsp; 符号常数&nbsp;&nbsp;&nbsp; 
      数值&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3 
      <BR>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      C0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      0&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;&nbsp;&nbsp;&nbsp;&nbsp; 黄 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      1&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;&nbsp;&nbsp; 白 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      2&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; C3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      3&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>
      <P>&nbsp;&nbsp;&nbsp; 清除图形屏幕内容使用清屏函数, 其调用格式如下: 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp; voide far cleardevice(void); 
      <BR>&nbsp;&nbsp;&nbsp; 有关颜色设置、清屏函数的使用请看例8。 <BR>&nbsp;&nbsp;&nbsp; 例8: 
      <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;&nbsp; int gdriver, 
      gmode, i; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      gdriver=DETECT; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      registerbgidriver(EGAVGA_DRIVER);/*建立独立图形运行程序*/ 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      initgraph(&amp;gdriver, &amp;gmode", "");/*图形初始化*/ 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      setbkcolor(0);&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; 
      cleardevice(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      for(i=0; i&lt;=15; i++) 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      setcolor(i);&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;&nbsp;&nbsp; 
      circle(320, 240, 20+i*10);&nbsp;&nbsp;&nbsp;&nbsp; /*画半径不同的圆*/ 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      delay(100);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      /*延迟100毫秒*/ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(i=0; 
      i&lt;=15; i++) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      { 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      setbkcolor(i);&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;&nbsp;&nbsp;&nbsp; 
      cleardevice(); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      circle(320, 240, 20+i*10); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      delay(100); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } 
      <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; 另外, TURBO C也提供了几个获得现行颜色设置情况的函数。 
      <BR>&nbsp;&nbsp;&nbsp; int far 
      getbkcolor(void);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回现行背景颜色值。 
      <BR>&nbsp;&nbsp;&nbsp; int far 
      getcolor(void);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回现行作图颜色值。 
      <BR>&nbsp;&nbsp;&nbsp; int far getmaxcolor(void);&nbsp;&nbsp;&nbsp;&nbsp; 
      返回最高可用的颜色值。 <BR>
      <P>&nbsp;&nbsp;&nbsp; 4. 基本图形函数 <BR>&nbsp;&nbsp;&nbsp; 基本图形函数包括画点, 
      线以及其它一些基本图形的函数。本节对这些函数 <BR>作一全面的介绍。 <BR>
      <P>&nbsp;&nbsp;&nbsp; 一、画点 <BR>&nbsp;&nbsp;&nbsp; 1. 画点函数 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp; void far putpixel(int x, int y, int color); 
      <BR>&nbsp;&nbsp;&nbsp; 该函数表示有指定的象元画一个按color所确定颜色的点。对于颜色color的 
      <BR>值可从表3中获得而对x, y是指图形象元的坐标。 <BR>&nbsp;&nbsp;&nbsp; 在图形模式下, 
      是按象元来定义坐标的。对VGA适配器,&nbsp; 它的最高分辨率为 <BR>640x480, 其中640为整个屏幕从左到右所有象元的个数, 480 
      为整个屏幕从上到 <BR>下所有象元的个数。屏幕的左上角坐标为(0, 0), 右下角坐标为(639, 479), 水 
      <BR>平方向从左到右为x轴正向, 垂直方向从上到下为y轴正向。TURBO C 的图形函数 <BR>都是相对于图形屏幕坐标, 即象元来说的。 
      <BR>&nbsp;&nbsp;&nbsp; 关于点的另外一个函数是: <BR>&nbsp;&nbsp;&nbsp;&nbsp; int far 
      getpixel(int x, int y); <BR>&nbsp;&nbsp;&nbsp; 它获得当前点(x, y)的颜色值。 <BR>
      <P>&nbsp;&nbsp;&nbsp; 2. 有关坐标位置的函数 <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp; int far getmaxx(void); <BR>&nbsp;&nbsp;&nbsp; 
      返回x轴的最大值。 <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp; int far getmaxy(void); <BR>&nbsp;&nbsp;&nbsp; 
      返回y轴的最大值。 <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp; int far getx(void); <BR>&nbsp;&nbsp;&nbsp; 
      返回游标在x轴的位置。 <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp; void far gety(void); <BR>&nbsp;&nbsp;&nbsp; 
      返回游标有y轴的位置。 <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp; void far moveto(int x, int y); 
      <BR>&nbsp;&nbsp;&nbsp; 移动游标到(x, y)点, 不是画点, 在移动过程中亦画点。 <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp; void far moverel(int dx, int dy); 
      <BR>&nbsp;&nbsp;&nbsp; 移动游标从现行位置(x, y)移动到(x+dx, y+dy)的位置, 移动过程中不画点。 
      <BR>&nbsp; <BR>&nbsp;&nbsp;&nbsp; 二、画线 <BR>&nbsp;&nbsp;&nbsp; 1. 画线函数 
      <BR>&nbsp;&nbsp;&nbsp; TURBO C提供了一系列画线函数, 下面分别叙述: <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp; void far line(int x0, int y0, int x1, int y1); 
      <BR>&nbsp;&nbsp;&nbsp; 画一条从点(x0, y0)到(x1, y1)的直线。 <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp; void far lineto(int x, int y); 
      <BR>&nbsp;&nbsp;&nbsp; 画一作从现行游标到点(x, y)的直线。 <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp; void far linerel(int dx, int dy); 
      <BR>&nbsp;&nbsp;&nbsp; 画一条从现行游标(x, y)到按相对增量确定的点(x+dx, y+dy)的直线。 <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp; void far circle(int x, int y, int radius); 
      <BR>&nbsp;&nbsp;&nbsp; 以(x, y)为圆心, radius为半径, 画一个圆。 <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp; void far arc(int x, int y, int stangle, int 
      endangle, int radius); <BR>&nbsp;&nbsp;&nbsp; 以(x, y)为圆心, radius为半径, 
      从stangle开始到endangle结束(用度表示) <BR>画一段圆弧线。在TURBO C中规定x轴正向为0度, 
      逆时针方向旋转一周,&nbsp; 依次为 <BR>90, 180, 270和360度(其它有关函数也按此规定, 不再重述)。 <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp; void ellipse(int x, int y, int stangle, int 
      endangle, int xradius, <BR>int yradius); <BR>&nbsp;&nbsp;&nbsp; 以(x, 
      y)为中心, xradius, yradius为x轴和y轴半径, 从角stangle 开始到 <BR>endangle结束画一段椭圆线, 
      当stangle=0, endangle=360时,&nbsp; 画出一个完整的 <BR>椭圆。 <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp; void far rectangle(int x1, int y1, int x2, 
      inty2); <BR>&nbsp;&nbsp;&nbsp; 以(x1, y1)为左上角, (x2, y2)为右下角画一个矩形框。 <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp; void far drawpoly(int numpoints, int far 
      *polypoints); <BR>&nbsp;&nbsp;&nbsp;&nbsp; 画一个顶点数为numpoints,&nbsp;&nbsp; 
      各顶点坐标由polypoints 给出的多边形。 <BR>polypoints整型数组必须至少有2倍顶点数个无素。每一个顶点的坐标都定义为x, 
      <BR>y, 并且x在前。值得注意的是当画一个封闭的多边形时, numpoints 的值取实际 <BR>多边形的顶点数加一, 
      并且数组polypoints中第一个和最后一个点的坐标相同。 <BR>&nbsp;&nbsp;&nbsp; 
      下面举一个用drawpoly()函数画箭头的例子。 <BR>&nbsp;&nbsp;&nbsp; 例9: 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp; #include&lt;stdlib.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;&nbsp; int gdriver, 
      gmode, i; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int 
      arw[16]={200, 102, 300, 102, 300, 107, 330, 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      100, 300, 93, 300, 98, 200, 98, 200, 102}; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gdriver=DETECT; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      registerbgidriver(EGAVGA_driver); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      initgraph(&amp;gdriver, &amp;gmode, ""); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      setbkcolor(BLUE); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cleardevice(); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      setcolor(12);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*设置作图颜色*/ 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; drawpoly(8, 
      arw);&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; 2. 设定线型函数 <BR>&nbsp;&nbsp;&nbsp; 在没有对线的特性进行设定之前, 
      TURBO C用其默认值, 即一点宽的实线, <BR>但TURBO C也提供了可以改变线型的函数。线型包括:宽度和形状。其中宽度只有 
      <BR>两种选择: 一点宽和三点宽。而线的形状则有五种。下面介绍有关线型的设置函 <BR>数。 <BR>

⌨️ 快捷键说明

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