easyx入门(一)窗口、图形和文字

一、绘制绘图窗口

1.初始化窗口(大小和样式)

initgraph(int width, int height, int flag=NULL);//用于初始化绘图窗口

三个参数分别为窗口的宽度、高度和样式

向右为x轴正向,对应width;向下为y轴正向,对应height

其中样式flag默认为NULL,还有其他的形式:

SHOWCONSOLE(显示控制台,show console)

NOCLOSE(没有关闭功能,no close)

NOMINMIZE(没有最小化功能,no minmize)

DBLCLKS(设置鼠标双击功能,double-click)

用' | '号可同时使用flag的多种样式

注意:要加上前缀EX_

initgraph(680, 480, EX_SHOWCONSOLE | EX_DBLCLKS);//新建绘图窗口

 2.设置窗口背景(颜色和透明格式)

setbkcolor(RGB(int, int, int));//设置背景颜色

  • 可直接写已定义的颜色(如白色WHITE,黄色YELLOW,红色RED和蓝色BLUE等)
  • 也可以自己寻找喜欢的颜色,填入RGB参数(1. win+R ,打开mspaint,找到喜欢的背景颜色,记录下该颜色的RGB;2. 或者在登录qq的状态下,可以按下control+alt+a,就会显示鼠标所指的地方的颜色的RGB)

cleardevice();//清空上一次的绘图(实际上是用这次的绘图覆盖上一次的绘图,这也是为什么要先设置背景颜色,再写cleardevice(),就是要用设置好了的颜色来覆盖背景)

setbkmode(TRANSPARENT);//设置背景模式为透明(tranparent透明的)

3.关闭绘图窗口

getchar();

closegraph();

注意:在关闭窗口之前,如果想让窗口一直保持显现出来,就要加上getchar()

getchar()能防止程序关闭,因为不输入字符的话,它会一直处于等待状态,无法结束运行

 代码展示

int main()
{
	initgraph(680, 480, EX_SHOWCONSOLE);

	setbkcolor(BLUE);
	cleardevice();
	setbkmode(TRANSPARENT);

	getchar();
	closegraph();
	
	return 0;
}

 二、 绘制图形

1.点

putpixel(横坐标x,纵坐标y,颜色);

2.直线与折线

1. 直线画图原理:两点A,B连成一条线

line(A的横坐标,A的纵坐标,B的横坐标,B的纵坐标)

在画线之前还可以先设置线条的颜色和格式:

setlinecolor(RED);

setlinestyle(PS_SOLID,3);

格式:PS_SOLID(实线)

PS_DASH(虚线)

PS_DOT(点线)

PS_DASHDO(_ . _ . _ .)

PS_DASHDOTDOT(_ . . _ . . _ . .)

setlinecolor(RED);
	setlinestyle(PS_SOLID, 3);
	line(0, 0, getwidth(), getheight());

2. 折线:多点连成一条折线

polyline(点集构成的数组,int num(最大为数组中的元素个数));

POINT points[] = { {0,0},{100,100},{200,0},{300,100},{400,0 } };
	polyline(points, 5);

 

3.矩形

1.直角矩形

绘图原理:先确定矩形的左上顶角A和右下顶角B,矩形随之确定

rectangle(int left, int top, int right, int bottom);

(  A的坐标为(left, top),B的坐标为(right, bottom))

无填充:rectangle(int left, int top, int right, int bottom);

有边框填充:fillrectange(int left, int top, int right, int bottom);

无边框填充:solidrectange(int left, int top, int right, int bottom);

2. 圆角矩形(在角落放置一个椭圆,从而将直角变换成圆角)

roundrect(int left, int top, int right, int bottom, int a, int b);

fillroundrect(int left, int top, int right, int bottom, int a, int b);

solidroundrect(int left, int top, int right, int bottom, int a, int b);

其中a和b是确定圆角的参数(分别为椭圆的长半轴长和短半轴长)

4.圆形

circle(圆心横坐标,圆心纵坐标,半径);

fillcircle(圆心横坐标,圆心纵坐标,半径);

roundcircle(圆心横坐标,圆心纵坐标,半径);

5.椭圆

绘图原理:在直角矩形内确定一个内接椭圆

ellipse(int left, int top, int right, int bottom);

fillellipse(int left, int top, int right, int bottom);

solidellipse(int left, int top, int right, int bottom);

三、文字

1.基本函数

settextcolor(颜色);
settextstyle(字的高度,宽度,字体);  //宽度可设为0,则为自适应调整比例
outtextxy(int x, int y, 字符串); //在指定位置输出字符串
textheight();   textwidth();  //获取字符串实际占用的像素高度和宽度

2.报错时的解决办法

1.改成   L字符串(强制转换)

2.改成   _T(字符串)  (自适应转换)

3.项目->属性->高级->字符集->使用多字节字符集  (最推荐)

3.如何让文本居中

int x, y, w, h;
	rectangle(x, y, x + w, y + h);
	char str1[50] = "hello,world!";
	int hSpace = (w - textwidth(str1)) / 2;
	int vSpace = (h - textheight(str1)) / 2;
	outtextxy(x + hSpace, y + vSpace, str1);

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值