1.EasyX是什么?
是基于Windows的图形编程,给用户提供函数接口,最终函数调用会由Windows的API实现。
注:EasyX只适配 c++ 。
2.头文件:
<easyx.h>---只包含最新的函数
<graphics.h>---包含<easyx.h>以及已经不推荐使用的函数
(正常只需要包含<easyx.h>即可)
3.窗口创建:
initgraph 函数:用于创建图形化窗口。
1.可以上传两个参数作为窗口的宽度和高度。
initgraph(640,480);//即创建宽度为640,高度为480的窗口
2.也可以在宽高后再传一个参数,是easyx已经定义好的宏。
(1)EX_SHOWCONSOLE --- 在创建图形化窗口的同时保留控制台窗口。
(2)EX_NOCLOSE --- 禁用图形化窗口的关闭按钮。
(3)EX_NOMINIMIZE --- 禁用图形化窗口的最小化按钮。
(4)EX_DBLCLKS --- 检查鼠标是否双击。
initgraph(640,480,EX_DBLCLKS);
注:若想同时使用上面的宏,可用按位或“ | ”连接。
initgraph(640, 480, EX_DBLCLKS | EX_SHOWCONSOLE | EX_NOCLOSE);
4.设置窗口背景颜色:
setbkcolor 函数:用于设置当前设备绘图背景色。
1.直接使用给好的颜色:
setbkcolor(WHITE);
2.任意颜色:
(1)首先打开电脑的绘图工具,找到想要的颜色,会有红绿蓝的值;
(2)然后以RGB作为参数即可。
setbkcolor(RGB(73,130,199));
注:
在设置背景色之后,并不会改变现有背景色,而是只改变背景色的值,之后再执行绘图语句,例如 outtextxy,会使用新设置的背景色值。
如果需要修改全部背景色,可以在设置背景色后执行 cleardevice( ) 函数(清除屏幕内容)。
5.窗口的坐标体系:
以左上角为原点,从左往右为x轴正方向,从上往下为y轴正方向。
6.基本图形绘制:
1.绘制一个点:
putpixel( ) 函数 :更改坐标点的颜色。
putpixel ( x,y,颜色)
putpixel(50, 50, RED);
2.绘制一条线:
(1)绘制线条:
line 函数 :绘制线条。
line (x1,y1,x2,y2) --- 绘制从x1,y1到x2,y2间的一条线。
line(0, 0, 640, 480);
注:自动填充为白色。
(2)设置线条颜色和样式:
setlinecolor ( color ) ;
serlinestyle (样式,线条粗细) ;
注:其中线条样式分为三种:直线样式、端点样式、连接样式:
例:
setlinestyle(PS_SOLID | PS_ENDCAP_SQUARE, 5);
3.绘制一个矩形:
(1)绘制无填充矩形:
rectangle (左,上,右,下)(表示对应边框所对应的坐标)
注:边框颜色为之前设置的 line 颜色。
(2)绘制填充矩形:
fillrectangle (左,上,右,下)
注:默认填充白色,若想更改填充颜色,需在绘制前setfillcolor(YELLOW);函数设置颜色。
(3)绘制无边框填充矩形:
solidrectangle (左,上,右,下)
(4)绘制圆角矩形:
roundrect (左,上,右,下,椭圆宽度,椭圆高度)
这里椭圆宽度和高度是指---圆角对应的椭圆。
同理:填充圆角矩形和无边框圆角矩形:
fillroundrect(50, 90, 90, 130, 20, 20);
solidroundrect(90, 130, 130, 170, 20, 20);
4.绘制一个圆形:
(1)绘制无边框圆形:cicle (x,y,半径)
(2)绘制填充圆形: fillcicle (x,y,半径)
(3)绘制无边框填充圆形: solidcicle (x,y,半径)
(4)绘制椭圆:
ellipse ( 左,上,右,下)这里指用对应矩形坐标画出椭圆。
同理:填充椭圆和无边框椭圆:
fillellipse(150, 350, 350, 450);
solidellipse(350, 250, 550, 350);
5.绘制折线:
首先设置点列:
POINT points[] = { {0,0},{200,20},{150,80},{180,60} };
然后用polyline函数:
polyline (POINT*, 点的个数)在相应点直接产生折线。
polyline(points, 4);
7.文字绘制:
1.绘制文字:
outtextxy( x , y , 字符或字符串)--- 在指定坐标处绘制文字。
注:这里vs2022可能报错,是因为easyx的字符集问题,所有easyx的字符串,都需
1.在字符串前加一大写的 L
2.用 _T()把字符串包裹起来(推荐) 。
3.菜单栏-项目-属性-高级-字符集-把UNICODE改为多字节字符集。(推荐)
outtextxy(10, 10, _T("hello easyx."));
2.设置文字大小:
settextstyle (文字高度,文字宽度,字体名称)
注:文字宽度---设置为0,则为自适应。
字体名称---同理需在名称前加大写 L 等。
settextstyle(50, 0, L"微软雅黑");
3.设置文字颜色:
settextcolor ( 颜色 );
settextcolor(BROWN);
4.设置背景模式:
setbkmode函数---用于设置当前设备图案填充和文字输出时的背景模式。
void setbkmode(int mode);
其中,mode可以为两个值:
OPAQUE:背景用当前背景色填充(默认)。
TRANSPARENT:背景是透明的。(即不会把后面的图形覆盖住)
例:
setbkmode(TRANSPARENT);
5.输出其他类型文字(如 int):
可通过 sprintf 将其他类型放到 char 类型的数组里。
例:
int score = 66;
char str[50] = { 0 };
sprintf(str, "%d", score);
outtextxy(getheight() - 20, getwidth() - 20, str);
8.文本居中显示:
textwidth , textheight函数:求打印字符串的宽度和高度。
例:
void centerText()
{
int rx = 30;
int ry = 300;
int rw = 200;
int rh = 60;
//一个矩形
setfillcolor(RGB(116, 88, 97));
fillrectangle(rx, ry, rx+rw, ry+rh);
//绘制文字
settextcolor(WHITE);
outtextxy(rx+(rw-textwidth("hello easyx"))/2, ry + (rh - textheight("hello easyx"))/2, "hello easyx");
}