• 欢迎访问C语言网www.dotcpp.com 比赛栏每月有奖月赛!举办比赛联系QQ:2045302297
  • 问题反馈、粉丝交流 QQ群327452739 蓝桥杯训练群:113766799 申请群时请备注排名里的昵称
  • C语言研究中心 为您提供有图、有料、解渴的C语言专题! 欢迎讨论!

C语言之图形显示及计算机绘图技术

技术专题 CTO 1270次浏览 0个评论

说明:本节教程的绘图技术为Turboc编译器,非VC6,请注意,Turboc编译器下载地址见: TC2.0

 

5.1 C语言图形函数及其用法

TurboC 2.0具有70多个图形库函数,其图形功能极为丰富,而且用TurboC 2.0编写和通过的程序,可以不作修改或只做很少的修改,便可以在TurboC ++或Borland C++的环境下编译运行,所以TurboC 是一种很好的图形设计语言。在这一节只介绍其中最常用的一部分,其余的图形函数及用法简介可参阅其它参考书。所有这些图形函数均在头文件“graphics.h”中定义,所以,凡是在程序中要调用这些图形函数,都必须在程序文件的开头写上文件包含命令:

#include<graphics.h>

5.2图形系统管理

在一般缺省情况下,屏幕为80列、25行的文本方式。在文本方式下,所有的图形函数均不能操作,因此在使用图形函数绘图之前,必须将屏幕显示适配器设置为一种图形模式,这就是通常所说的“图形方式初始化”。在绘图工作完毕之后,又要使屏幕回到文本方式,以便进行程序文件等的编辑工作。TurboC 2.0提供了14个函数,来进行对图形系统的控制和管理工作。

5.2.1图形方式初始化

图形方式初始化是通过函数initgraph来完成的。其调用格式为:

initgraph(*gdriver,*gmode,*path);

函数initgraph的功能是通过从磁盘上装入一个图形驱动程序来初始化图形系统,并将

系统设置为图形方式。调用该函数须用三个参数,其含义为:

①gdriver:是一个整型值,用来指定要装入的图形驱动程序,该值在头文件graphics.h

中定义,见表5.1。

 

表5.1图形驱动程序

    符号常量     数值
    DETECT

CGA

MCGA

EGA

EGA64

EGAMONO

IBM8514

HERCMONO

ATT 400

VGA

PC 3270

    0

1

2

3

4

5

6

7

8

9

10

 

除DETECT外,表中每一个量均对应于一种图形驱动程序。如果使用DETECT,则由系统自动检测图形适配器的最高分辨率模式,并装入相应的图形驱动程序。

②gmode:是一个整型值,用来设置图形显示模式。不同的图形驱动程序有不同的图形显示模式,即使是在同一个图形驱动程序下,也可能会有几种图形显示模式。图形显示模式决定了显示的分辨率、可同时显示的颜色的多少、调色板的设置方式以及存储图形的页数。几种不同的图形显示模式见表5.2。

 

表5.2图形显示模式

图形驱动程序(gdriver) 图形显示模式(gmode)   分辨率   颜色数
     CGA

 

 

 

 

    CGAC0

CGACl

CGAC2

CGAC3

CGAHI

0

1

2

3

4

  320×200

320×200

320×200

320×200

640×200

    4

4

4

4

2

1

1

1

1

1

     MCGA

 

 

 

 

 

    MCGAC0

MCGACl

MCGAC2

MCGAC3

MCGAMED

MCGAHI

0

1

2

3

4

5

  320×200

320×200

320×200

320×200

640×200

640×480

    4

4

4

4

2

2

1

1

1

1

1

1

     EGA

 

    EGALO

EGAHI

0

1

  640×200

640×350

    16

16

1

2

     EGA64

 

    EGA64LO

EGA64HI

0

1

  640×200

640×350

    16

16

1

1

     EGAMONO     EGAMONOHI 0   640×350     2 1(2)
     HERCMONO     HERCMONOHI 0   720×348     2 2
     ATT400

 

 

 

 

 

    ATT400C0

ATT400C1

ATT400C2

ATT400C3

ATT400MED

ATT400HI

0

1

2

3

4

5

  320×200

320×200

320×200

320×200

640×200

640×400

    4

4

4

4

2

2

1

1

1

1

1

1

     VGA

 

 

    VGALO

VGAMED

VGAHI

0

1

2

  640×200

640×350

640×480

    16

16

16

2

2

1

     PC3270     PC3270HI 0   720×350     2 1
     IBM8514

 

    IBM8514LO

IBM8514HI

0

1

  640×480

1024×768

    256

256

 

 

 

③path:是一个字符串,用来指明图形驱动程序所在的路径。如果驱动程序就在用户当前目录下,则该参数可以为空字符串,否则应给出具体的路径名。一般情况下,TurboC安装在C盘的TC目录中,则该路径为:C:\TC,如果写在参数中则为:”C:\\tc”。

 

以上介绍了initgraph函数中的三个参数的含义。注意,前两个参数实际上是整型指针,调用时应加上地址运算符“&”。下面举例说明:

假设我们在例子中使用VGA图形驱动程序,图形显示模式为VGAHI,即VGA高分辩率图形模式,分辨率为640×480。则initgraph函数的调用方式如下:

int gdriver,gmode;

gdriver=VGA;

gmode=VGAHI;

initgraph(&gdriver,&gmode,“C:\\tc”);

也可以用整型常数代替符号常数,如:

int gdriver=9,gmode=2;

initgraph(&gdriver,&gmode,”C:\\tc”);

这两种方式是等效的。

另外,还可以使用DETECT模式,由系统自动对硬件进行检测,并把图形显示模式设

置为检测到的驱动程序的最高分辨率。如:

int gdriver=DETECT,gmode;

initgraph(&gdriver,&gmode,“C:\\tc”);

5.2.2关闭图形方式

在运行图形程序绘图结束后,又要回到文本方式,以进行其他工作,这时应关闭图形方式。关闭图形方式要用函数closegraph。其调用格式为:

closegraph();

函数closegraph的作用是:释放所有图形系统分配的存储区,恢复到调用initgraph之前的状态。函数closegraph不需参数。

5.3屏幕管理

TurboC 2.0提供了11个函数,用于对屏幕和视图区等进行控制管理。

5.3.1设置视图区

在图形模式下,可以用函数setviewport在屏幕上定义一个视图区。视图区相当于一个

用于绘图的窗口。视图区的位置用屏幕绝对坐标定义,并且可以把视图区设置为裁剪和不裁剪两种状态。

函数setviewport的调用格式为:

setviewport(x1,y1,x2,y2,c);

函数调用中的五个参数均为整型,其中:

x1,y1:为视图区的左上角坐标。

x2,y2:为视图区的右下角坐标。

c:为裁剪状态参数。当c=1时,则超出视图区的图形部分被自动裁剪掉;当c=0时,则对超出视图区的图形不作裁剪处理。

应注意:视图区建立以后,所有的图形输出坐标都是相对于当前视图区的,即视图区左上角点为坐标(0,0)点,而与图形在屏幕上的位置无关。

5.3.2清除视图区

清除视图区用函数clearviewport。它的作用是清除掉当前的视图区,将当前点(cp:current point)位置设置于屏幕左上角(0,0)点。所以执行后,原先设置的视图区将不复存在。函数的调用格式为:

clearviewport();

5.3.3清屏

清除屏幕使用函数cleardevice。它的作用是立即清除全屏幕。并将当前点位置设置为原点(0,0)。但是其他的图形系统设置将保持不变,如线型、充填模式、文本格式和模式等;如果设置了视图区,则视图区的设置不变,包括当前点位置设置在视图区的左上角。

清屏函数的调用格式为:

cleardevice();

5.4绘图函数

绘图函数是编写绘图程序的基础,也是任何一种图形软件的核心内容。从理论上来说,

用象素点几乎可以画出任何图形,但毕竟是效率太低。为此,Turbo C的BGI(Borland

Graphics Interface)提供了大量的基本绘图函数,以方便图形设计。

在用绘图函数作图时,要随时注意画图的“当前点位置”,它是绘图的起始位置。也就是说,图形总是从当前点开始画。画完一个图形后,有时当前点的位置不变,仍在原来的位置;而有时则要把当前点移到新的位置。此外,为了从指定位置开始作图,有时需要先移动当前点位置,然后再作图。这些,在调用绘图函数的时候要注意。

5.4.1直线类函数

用直线类函数绘制直线图形,可以用两种坐标:一种是绝对坐标;另一种是相对坐标。

①line函数

用line函数可以在指定的两点之间画一条直线段。其调用格式为:

1ine(x1,y1,x2,y2);

参数x1,y1,x2,y2均为整型,使用绝对坐标。其中(x1,y1)和(x2,y2)分别为直线的两个端点坐标。

用line函数画线时,其当前点的位置不变。

例如,下面的调用可在屏幕上(VGA)画出一条对角线,

line(0,0,639,479);

如果已知三角形的三个顶点坐标分别为:(x1,y1)、(x2,y2)和(x3,y3),则用下面的语句可以把该三点连成一个三角形:

line(x1,y1,x2,y2);

line(x2,y2,x3,y3);

line(x3,y3,x1,y1);

 

② lineto函数

lineto函数用于从当前点位置到指定位置之间画一条直线,并改变当前点的位置。所以

执行的结果是,在画线到指定点的同时也把当前点的位置移到了指定点(即直线的终点)。其调用格式为:

lineto(x,y);

参数x,y为指定点坐标,均为整型。

 

③ moveto函数

函数moveto用于移动当前点位置,并不画线。其调用格式为:

moveto(x,y);

参数x,y用于指定新的当前点位置坐标,用整型,使用绝对坐标。调用的结果是将当前点位置移到点(x,y)处。例如:

moveto(40,100);

结果是将当前点位置移到了(40,100)处。

moveto函数和lineto函数配合使用,可以在两点之间画直线。例如:

moveto(40,100);

lineto(200,300);

上面的语句是先把当前点移到(40,100)处,然后从该点画线到(200,300)处。画线结束后,当前点位置在(200,300)处。

用moveto函数和lineto函数结合,改写画上面提到的三角形的语句是这样的:

moveto(x1,y1);

lineto(x2,y2);

lineto(x3,y3);

lineto(xl,y1);

画图结束,当前点又回到点(x1,y1)处。

 

④linerel函数

linerel函数用相对坐标画线。其功能是从当前点位置开始画线到指定点位置,该指定点位置的坐标不是以绝对坐标的形式给出,而是以其相对于当前点(即直线起点)位置的坐标增量给出的。其调用格式为:

linerel(dx,dy);

参数dx,dy用整型,是相对于直线起点的坐标增量。linerel函数改变当前点位置到指定点处。

假设当前点位置坐标是(x,y),则

linerel(dx,dy);  等效于

lineto(x十dx,y十dy);

 

⑤moverel函数

moverel函数的功能与moveto函数相似,但它使用的是相对坐标,它使当前点位置在x和y方向上分别移动一个增量。其调用格式为:

moverel(dx,dy);

参数dx,dy为整型,是相对于当前点位置的增量。

 

下面举几个实际的绘图例子,来说明上面这些函数在使用上的差别:

设要过四点(160,120),(480,120),(480,360)和(160,360)画一个矩形,用不同的函数其绘图程序可以是:

[例程序5.1](用1ine函数画)

#include<graphics.h>

main()

{

int gdriver=DETECT,gmode;

initgraph(&gdriver,&gmode,“c:\\tc”);

cleardevice();

line(160,120,480,120);

line(480,120,480,360);

line(480,360,160,360);

line(160,360,160,120);

getch();

closegraph();

}

 

 

[例程序5.2](用1ineto函数画)

#include<graphics.h>

main()

{

int gdriver=DETECT,gmode;

initgraph(&gdriver,&gmode,“c:\\tc”);

cleardevice();

moveto(160,120);

lineto(480,120);

lineto(480,360);

lineto(160,360);

lineto(160,120);

getch();

closegraph();

}

 

 

[例程序5.3](用linerel函数画)

#include<graphics.h>

main()

{

int gdriver=DETECT,gmode;

initgraph(&gdriver,&gmode,“c:\\tc”);

cleardevice();

moveto(160,120);

linerel(320,0);

linerel(0,240);

lincrel(-320,0);

linerel(0, -240);

getch():

closegraph();

}

 

以上程序中均调用了函数getch。函数getch的功能是从键盘无回显地取一个字符。所

以可以从以上三个程序的进程中看出,当程序绘图结束后,即要执行语句“getch();”。它等待从键盘输入—个字符(即敲任意键),在敲任意键之前,图形—直保持在屏幕上。如敲—下任意键,则马上关闭图形方式(即执行语句closegraph();),回到文本方式。

5.4.2圆弧类函数

①circle函数

函数circle,用于以指定圆心和半径的方式画圆。其调用格式为:

circle(x,y,r);

参数x,y,r均为整型。其中(x,y)为指定的圆心坐标;r为圆的半径。例如:

circle(320,240,100);

的调用结果是:以点(320,240)为圆心,以100为半径画—个整圆。

②arc函数

arc函数用于画圆弧。其调用格式为:

arc(x,y,angs,ange,r);

函数调用时所需的五个参数均为整型。其中:

x,y:为圆弧所在圆的圆心坐标。

angs、ange:分别为圆弧的起始角和终止角,单位为“度”。

r:为圆弧的半径。

例如以下的调用:

arc(320,240,90,180,100);

的结果是以点(320,240)为圆心,100为半径,从90度到180度画了四分之一个圆的圆弧。

当圆弧的起始角angs=0,终止角ange=360时,则可以画出一个整圆。

②ellipse函数

函数ellipse用于画椭圆弧或椭圆。其调用格式为:

ellipse(x,y,angs,ange,xr,yr);

函数的参数均为整型。其中:

x,y:为椭圆的中心坐标。

angs,ange:分别为椭圆弧的起始角和终止角,单位为“度”。

xr,yr:分别为椭圆的水平轴半轴和垂直轴半轴。

如果angs=0,ange=360,则可以画出一个完整的椭圆。

另外:

xr>yr:则画出长轴为水平方向的椭圆或椭圆弧;

xr<yr:则画出长轴为垂直方向的椭圆或椭圆弧;

xr=yr:则可以画出圆或圆弧。

下面的一个例子是调用ellipse函数画出一个椭圆群。

[例程序5.4]

#include<graphics.h>

main()

{

int a=150,b;

int gdriver=DETECT,gmode;

initgraph(&gdriver,&gmode,“c:\\tc”);

cleardevice();  ‘

for(b=10;b<=140;b十=10)

ellipse(320,240,0,360,a—b,b);

getch();

closegraph();

}

 

5.4.3多边形

①rectangle函数

函数rectangle用于绘制矩形。其调用格式为:

rectangle(x1,y1,x2,y2);

参数x1,y1,x2,y2均为整型。

函数的功能是以点(x1,y1)为矩形的左上角点,以点(x2,y2)为矩形的右下角顶点,画

一个正方的矩形。

上面例程序5.1中画的矩形,可以用函数rectangle的一次调用完成:

rectangle(160,120,480,360);

②drawpoly函数

函数drawpoly可用于画一条多边折线。其调用格式为:

drawpoly(nps,*pxy);

它有两个参数。第一个参数nps是一个整型数据,它表示所画多边折线的顶点数;第二个参数pxy是一个整型数组的数组名,该数组中存放了nps个顶点的坐标值序列。

例如,有一个名为xy的数组中存放了4个顶点的坐标为[x1,y1,x2,y2,x3,y3,x4,

y4],则调用方式为:

drawpoly(4,xy);

如果最后一个点的坐标与第一个点的坐标相同,则利用drawpoly函数便可以画出一个

封闭的多边形。此时,坐标点的数目应该是多边形的顶点数加1,即让最后一个顶点和第一个点重合。

5.5图形属性控制

图形的属性控制包括控制颜色和线型。颜色又有背景色和前景色之分。背景色指的是

屏幕的颜色,即绘图时的底色;前景色指的是绘图时图形线条所用的颜色。

任何绘图函数都是在当前的颜色(包括背景色和前景色)和线型的状态下进行绘图的。

在前面所举的四个例程序中没有提当前的颜色和线型,那是因为用了系统的缺省值。系统的缺省值是:背景色为黑色,前景色为白色,线型为实线。

如果绘图时要用系统缺省值以外的颜色和线型,则可以利用图形属性控制函数另行设置。

5.5.1 setbkcolor函数

函数setbkcolor用于设置绘图时的背景颜色。其调用格式为:

setbkcolor(color);

参数color为一个整型数据,代表所取的颜色,可以用整型常数,也可以用符号常数,见表5.3。

 

 

表5.3

符号名 数值 颜  色
BLACK

BLUE

GREEN

CYAN

RED

MAGENTA

BROWN

LIGHTGRAY

DARKGRAY

LIGHTBLUE

LIGHTGREEN

LIGHTCYAN

LIGHTRED

LIGHTMAGENTA

YELLOW

WHITE

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

黑色

蓝色

绿色

青色

红色

紫红色

棕色

浅灰色

深灰色

浅蓝色

浅绿色

淡青色

浅红色

淡紫红

黄色

白色

 

例如,要把背景色设置成浅蓝,可以如下调用:

setbkcolor(LIGHTBLUE);

或:setbkcolor(9);

两种调用方式,效果相同。

5.5.2 setcolor函数

函数setcolor用于设置前景颜色,即绘图用的颜色。调用格式为:

setcolor(color);

参数color的含义和用法见setbkcolor函数。

下面的例程序可以演示16种颜色。

[例程序5.5]

#include<graphics.h>

main()

{

int cb,cf;

int gdriver=DETECT,gmode;

initgraph(&gdriver,&gmode,“c:\\tc”);

cleardevice();

for(cb=0;cb<=15;cb十十)

{setbkcolor(cb);

for(cf=0;cf<=15;cf十十)

{setcolor(cf);

circle(100十cf*25,240,100);}

getch();}

getch();

closegraph();}

5.5.3 setlinestyle函数

函数setlinestyle用于设置当前绘图所用的线型和宽度,这些设置限于对直线类图形有

效。其调用格式如下:

setlinestyle(sty,pat,b);

该函数所用的三个参数含义如下:

·sty:为整型值,用来定义所画直线的类型。见表5.4所示。

表中前四种为系统预定义的类型,第五种留给用户自定义用。

·pat:为无符号整型数。该参数在需要用户自定义线型时使用。如果是使用前四种系

统预定义的线型,则该参数可取0值。

·b:为整型数,指定所画直线的粗细,以象素为单位。见表5.5所示。

表5.4

符号名 数值 含  义
SOLID_LINE

DOTTED_LINE

CENTER_LINE

DASHED_LINE

USERBIT_LINE

0

1

2

3

4

实线(缺省)

点线

中心线

虚线

用户自定义类型

 

 

表5.5

    符号名 数值 含  义
     NORM_WIDTH

THICK_ WIDTH

1

3

1个象素宽(缺省)

3个象素宽

 

当函数setlinestyle的第—个参数为USERBIT_LINE(或4)时,可以由用户自己定义

直线类型。此时,第三个参数的意义同前。直线的类型在第二个参数中定义,该参数是一个16位二进制码,每一位(bit)表示一个象素,某一位置l时表示直线上相应位置有显示,置0时为空白。例如:

1111111111111111

16位全置l,因此是画一条实线。而

1010101010101010

隔位置1,因此是画一条点线。

在实际编写程序时,一般把16位二进制数转换为4位十六进制数,每4位二进制数转

换为1位十六进制数。故上面的两个例子转换为十六进制数为:FFFF和AAAA。

函数调用方法为:

setlinestyle(4,OxAAAA,1);

用这种方法,可以根据需要定义各种线型。

下面所举的例子程序,演示了系统预定义的四种线型。

[例程序5.6]

#include<graphics.h>

main()

{

int i,j,c,x=50,y=50,k=1;

int gdriver=DETECT,gmode;

printf(“input color number.\n”);

scanf(“%d”,&c);

initgraph(&gdriver,&gmode,“c:\\tc”);

cleardevice();

setbkcolor(11);

setcolor(c);

for(j=1;j<=2;j十十)

{

for(i=0;i<4;i十十)

{

setlinestyle(i,0,k);

rectangle(x,y,X十210,y十80);

x=x十110;y=y十40;

}

k=3;

x=50;y=250;

}

getch();

closegraph();

}

5.6充填

5.6.1 setfillstyle函数

函数setfillstyle用来设置当前充填模式和充填颜色,以便用于充填一个指定的封闭

域。其调用格式为:

setfillstyle(pattern,color);

参数pattern用于指定充填的模式。系统有11种预定义的模式,见表5.6所示。

表5.6

    符号名   数值     含  义
     EMPTY_FILL

SOLID_FILL

LINE_FILL

LTSLASH_FILL

SLASH_FILL

BKSLASH_FILL

LTBKSLASH_FILL

HATCH_FILL

XHATCH_FILL

INTERLEAVE_FILL

WINDEDOT_FILL

CLOSEDOT_FILL

USER_FILL

    0

1

2

3

4

5

6

7

8

9

10

11

12

    用背景色充填

用指定颜色充填

用线“一”充填

用斜线充填

用粗斜线充填

用粗反斜线充填

用反斜线充填

用网格线充填

用斜交叉线充填

用间隔线充填

用稀疏点充填

用密集点充填

用户自定义模式

第二个参数color指定充填用颜色

5.6.2 floodfill函数

函数floodfill实施对一指定区域进行充填操作,其充填模式和颜色已由setfillstyle函

数指定。其调用格式为:

floodfill(x,y,bcolor);

参数(x,y)指位于充填区域内任意一点的坐标,该点作为充填的起始点。bcolor为充填

区域的边界颜色。例:

setcolor(RED);

circle(320,240,150);

setfillstyle(SOLID_FILL,GREEN);

floodfill(320,240,RED);

该段程序的作用是,用红颜色画了一个圆,然后用绿色色块充填该圆。

下面的例程序演示充填情况。

[例程序5.7]

#include<graphics.h>

main()

{

int i,c,x=5,y=6;

int gdriver=DETECT,gmode;

printf(“input color number.\n”);

scanf(“%d”,&c);

initgraph(&gdriver,&gmode,”c:\\tc”);

cleardevice();

setbkcolor(9);

for(i=c;i<c十8;i十十)

{

setcolor(i);

rectangle(x,y,x十140,y十104);

x=x十70;y=y十52;

setfillstyle(1,i);

floodfill(x,y,i);}

getch();

closegraph();

}

5.6.3其它充填函数

以下所列的几个充填函数,均须事先由函数setfillstyle指定当前的充填模式和颜色。

① fillellipse函数

函数fillellipse用于画一个充填的实椭圆,用当前颜色画出边线。其调用格式为:

fillellipse(x,y,rx,ry);

四个参数均为整型,其中:

x,y:为椭圆的中心坐标。

rx,ry:分别为椭圆的水平和垂直半轴长。

②sector函数

函数sector用于画一个充填的椭圆扇区,用当前颜色画出边线。其调用格式为:

sector(x,y,angs,ange,rx,ry);

参数使用说明参阅函数ellipse。

③fillpoly函数

函数fillpoly用于画并充填一个多边形(必须利用首末两点重合以确保多边形封闭),边

线用当前颜色画出。其调用格式为:

fillpoly(nps,*pxy);

函数的参数说明参阅前面的drawpoly函数。

5.7图形方式下的文本

5.7.1 BGI字体

在图形方式下,BGI提供了两种输出文本的方式:一种是位映象字符(或称点阵字符);

另一种是笔划字体(或称矢量字符)。其中位映象字符为缺省方式,即在一般情况下输出文本时,都是以位映象字符显示的。

笔划字体不是以位模式表示的,每个字符被定义成一系列的线段或笔划的组合。笔划字体可以灵活地改变其大小,而且不会降低其分辨率。系统提供了4种不同的笔划字体,即:小号字体、三倍字体、无衬线字体和黑体(哥特字体)。每种笔划字体都存放在独立的字体文件中,文件扩展名为.chr,在一般情况下,安装在bgi目录下。为了使用笔划字体,必须装入相应的字体文件。

5.7.2文本输出

①settextstyle函数

函数settextstyle用于在使用笔划字体之前装入字体文件。其调用格式为:

settextstyle(font,direction,csize);

函数所需的三个参数,其含义如下:

.font:是一个整型数,用来指定所使用的字体,其取值见表5.7。

表5.7

符号名 数值 含  义
DEFAULT_ FONT

TRIPLEX_FONT

SMALL_FONT

SANSSERIF_FONT

GOTHIC_FONT

0

1

2

3

4

8×8位图字体(缺省)

三重矢量字体

小号矢量字体

无衬线矢量字体

哥特矢量字体

 

.direction:  是一个整型数。用来指定文本的输出方向,取值见表5.8。

表5.8

符号名 数值 含  义
HORIZ _DIR

VERT_DIR

0

1

从左到右输出(缺省)

从上到下输出

 

·csize:是一个整型数,表示字符的大小。该参数实际上是—个放大系数,它表示对8×8点阵的放大倍数,其取值的范围是1一10,它既影响点阵字符,也影响笔划字体。

调用settextstyle函数后,设置了输出字符的字体、输出方向及大小,这些设置将影响下

面的outtext和outtextxy所产生的文本输出。

C语言研究中心(www.dotcpp.com)


C语言网, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C语言之图形显示及计算机绘图技术
喜欢 (2)
[jinyangH@aliyun.com]
分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)