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

📄 gra.htm

📁 各种各样的源代码
💻 HTM
📖 第 1 页 / 共 5 页
字号:
        但TURBO C也提供了可以改变线型的函数。线型包括:宽度和形状。其中宽度只有
        <br>
        两种选择:
        一点宽和三点宽。而线的形状则有五种。下面介绍有关线型的设置函
        <br>
        数。 </p>
        <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。
        </p>
        <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, 则该象元打开,
        否则该象元关闭。 </p>
        <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, &quot;&quot;); <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; } </p>
        <p>&nbsp;&nbsp;&nbsp; 5. 封闭图形的填充 <br>
        &nbsp;&nbsp;&nbsp;
        填充就是用规定的颜色和图模填满一个封闭图形。
        </p>
        <p>&nbsp;&nbsp;&nbsp; 一、先画轮廓再填充 <br>
        &nbsp;&nbsp;&nbsp; TURBO C提供了一些先画出基本图形轮廓,&nbsp;
        再按规定图模和颜色填充整个封 <br>
        闭图形的函数。在没有改变填充方式时,
        TURBO C以默认方式填充。 下面介绍这 <br>
        些函数。 </p>
        <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; 说明: 此函数不画出边框,
        所以填充色为边框。 </p>
        <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度的方向。 </p>
        <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为终止角的椭圆扇形,
        再按规定方式填充。 </p>
        <p>&nbsp;&nbsp;&nbsp; 二、设定填充方式 <br>
        &nbsp;&nbsp;&nbsp; TURBO C有四个与填充方式有关的函数。下面分别介绍:
        </p>
        <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;

⌨️ 快捷键说明

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