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

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

📁 初学者的良师益友。其中包括C的全部教程。
💻 HTM
📖 第 1 页 / 共 5 页
字号:
      <P>&nbsp;&nbsp;&nbsp;&nbsp; void far setlinestyle(int&nbsp; 
      linestyle,&nbsp;&nbsp; unsigned&nbsp; upattern,&nbsp;&nbsp; int 
      <BR>thickness); <BR>&nbsp;&nbsp;&nbsp; 该函数用来设置线的有关信息, 其中linestyle是线形状的规定, 
      见表5。 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表5. 
      有关线的形状(linestyle) <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; 含义 
      <BR>───────────────────────── <BR>&nbsp;&nbsp;&nbsp; 
      SOLID_LINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 实线 
      <BR>&nbsp;&nbsp;&nbsp; 
      DOTTED_LINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 点线 
      <BR>&nbsp;&nbsp;&nbsp; 
      CENTER_LINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 中心线 
      <BR>&nbsp;&nbsp;&nbsp; 
      DASHED_LINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 点画线 
      <BR>&nbsp;&nbsp;&nbsp; 
      USERBIT_LINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用户定义线 
      <BR>━━━━━━━━━━━━━━━━━━━━━━━━━ <BR>&nbsp;&nbsp;&nbsp;&nbsp; thickness是线的宽度, 
      见表6。 <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表6. 
      有关线宽(thickness) <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; 含义 
      <BR>───────────────────────── <BR>&nbsp;&nbsp;&nbsp;&nbsp; 
      NORM_WIDTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      一点宽 <BR>&nbsp;&nbsp;&nbsp;&nbsp; 
      THIC_WIDTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      三点宽 <BR>━━━━━━━━━━━━━━━━━━━━━━━━━ <BR>&nbsp;&nbsp;&nbsp; 对于upattern, 
      只有linestyle选USERBIT_LINE 时才有意义( 选其它线型, 
      <BR>uppattern取0即可)。此进uppattern的16位二进制数的每一位代表一个象元, 如 <BR>果那位为1, 则该象元打开, 
      否则该象元关闭。 <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp; void far getlinesettings(struct 
      linesettingstype far *lineinfo); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      该函数将有关线的信息存放到由lineinfo 指向的结构中,&nbsp;&nbsp;&nbsp;&nbsp; 表中 
      <BR>linesettingstype的结构如下: 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct 
      linesettingstype{ 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      int linestyle; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      unsigned upattern; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      int thickness; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      } <BR>&nbsp;&nbsp;&nbsp; 例如下面两句程序可以读出当前线的特性 <BR>&nbsp;&nbsp;&nbsp;&nbsp; 
      struct linesettingstype *info; <BR>&nbsp;&nbsp;&nbsp;&nbsp; 
      getlinesettings(info); <BR>&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; void far 
      setwritemode(int mode); <BR>&nbsp;&nbsp;&nbsp; 该函数规定画线的方式。如果mode=0, 
      则表示画线时将所画位置的原来信息 <BR>覆盖了(这是TURBO C的默认方式)。如果mode=1,&nbsp; 则表示画线时用现在特性的线 
      <BR>与所画之处原有的线进行异或(XOR)操作,&nbsp; 实际上画出的线是原有线与现在规定 <BR>的线进行异或后的结果。因此, 
      当线的特性不变, 进行两次画线操作相当于没有 <BR>画线。 <BR>&nbsp;&nbsp;&nbsp; 有关线型设定和画线函数的例子如下所示。 
      <BR>&nbsp;&nbsp;&nbsp; 例10. <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; 
      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(GREEN); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; circle(320, 
      240, 98); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      setlinestyle(0, 0, 3);&nbsp;&nbsp; /*设置三点宽实线*/ 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setcolor(2); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rectangle(220, 
      140, 420, 340); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      setcolor(WHITE); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setlinestyle(4, 
      0xaaaa, 1);&nbsp;&nbsp; /*设置一点宽用户定义线*/ 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line(220, 240, 
      420, 240); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      line(320, 140, 320, 340); 
      <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; 5. 封闭图形的填充 <BR>&nbsp;&nbsp;&nbsp; 
      填充就是用规定的颜色和图模填满一个封闭图形。 <BR>
      <P>&nbsp;&nbsp;&nbsp; 一、先画轮廓再填充 <BR>&nbsp;&nbsp;&nbsp; TURBO 
      C提供了一些先画出基本图形轮廓,&nbsp; 再按规定图模和颜色填充整个封 <BR>闭图形的函数。在没有改变填充方式时, TURBO 
      C以默认方式填充。 下面介绍这 <BR>些函数。 <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp; void far bar(int x1, int y1, int x2, int y2); 
      <BR>&nbsp;&nbsp;&nbsp; 确定一个以(x1, y1)为左上角, (x2, y2)为右下角的矩形窗口, 再按规定图 
      <BR>模和颜色填充。 <BR>&nbsp;&nbsp;&nbsp; 说明: 此函数不画出边框, 所以填充色为边框。 <BR>
      <P>&nbsp;&nbsp;&nbsp; void far bar3d(int x1, int y1, int x2, int 
      y2,&nbsp;&nbsp; int&nbsp; depth,&nbsp;&nbsp; int <BR>topflag); 
      <BR>&nbsp;&nbsp;&nbsp; 当topflag为非0时, 画出一个三维的长方体。当topflag为0时, 三维图形不 <BR>封顶, 
      实际上很少这样使用。 <BR>&nbsp;&nbsp;&nbsp; 说明: bar3d()函数中, 长方体第三维的方向不随任何参数而变,&nbsp; 
      即始终为 <BR>45度的方向。 <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp; void far pieslice(int x, int y, int stangle, 
      int&nbsp; endangle,&nbsp;&nbsp; int <BR>radius); <BR>&nbsp;&nbsp;&nbsp; 
      画一个以(x, y)为圆心, radius为半径, stangle为起始角度, endangle 为 <BR>终止角度的扇形, 
      再按规定方式填充。当stangle=0, endangle=360 时变成一个 <BR>实心圆, 并在圆内从圆点沿X轴正向画一条半径。 
      <BR>&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp; void far sector(int x, int 
      y,&nbsp;&nbsp; int&nbsp; stanle,&nbsp;&nbsp; intendangle,&nbsp;&nbsp; int 
      <BR>xradius, int yradius); <BR>&nbsp;&nbsp;&nbsp; 画一个以(x, y)为圆心分别以xradius, 
      yradius为x轴和y轴半径,&nbsp; stangle <BR>为起始角, endangle为终止角的椭圆扇形, 再按规定方式填充。 <BR>
      <P>&nbsp;&nbsp;&nbsp; 二、设定填充方式 <BR>&nbsp;&nbsp;&nbsp; TURBO 
      C有四个与填充方式有关的函数。下面分别介绍: <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp; void far setfillstyle(int pattern, int color); 
      <BR>&nbsp;&nbsp;&nbsp; color的值是当前屏幕图形模式时颜色的有效值。pattern的值及与其等价的 
      <BR>符号常数如表7所示。 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表7. 
      关于填充式样pattern的规定 <BR>&nbsp;&nbsp;&nbsp;&nbsp; ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
      <BR>&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; 
      ─────────────────────────── <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      EMPTY_FILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以背景颜色填充 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      SOLID_FILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以实填充 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      LINE_FILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以直线填充 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      LTSLASH_FILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以斜线填充(阴影线) 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      SLASH_FILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以粗斜线填充(粗阴影线) 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      BKSLASH_FILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以粗反斜线填充(粗阴影线) 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      LTBKSLASH_FILL&nbsp;&nbsp;&nbsp;&nbsp; 
      6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以反斜线填充(阴影线) 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      HATCH_FILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以直方网格填充 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      XHATCH_FILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以斜网格填充 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INTTERLEAVE_FILL&nbsp;&nbsp; 
      9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以间隔点填充 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      WIDE_DOT_FILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以稀疏点填充 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      CLOSE_DOS_FILL&nbsp;&nbsp;&nbsp;&nbsp; 
      11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以密集点填充 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      USER_FILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以用户定义式样填充 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp; ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ <BR>
      <P>&nbsp;&nbsp;&nbsp; 除USER_FILL(用户定义填充式样)以外, 其它填充式样均可由setfillstyle() 

⌨️ 快捷键说明

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