学完C语言可以学什么--C/C++图形库Easyx(万字教程,一文入门)

EasyX图形库教程

本文的封面第三章照片来自博客:爱心气球

img

前言

  本文章所使用到的资源分享:(均是免费,白嫖万岁)

  1. 在线转换gif动图
  2. qq截图
  3. 在线画图网站:diagrams.net – 流程图
  4. 思维导图软件:Xmind
     
    在这里插入图片描述

 

1.EasyX是什么?

EasyX 是针对 C++ 的图形库,可以帮助 C/C++ 初学者快速上手图形和游戏编程。虽然是C++图形库,但是C和C++不分家,只要你学了C语言,或者一门编程语言,那么学习成本都不会很高,学习门槛很低。它是可以帮助我们去实现图形化,优美化的小游戏的工具,例如:贪吃蛇,俄罗斯方块,扫雷等等。

大部分学校只交基础语法,一直都在黑窗口(也就是我们平时所说的控制台)上练习,同学们都学习很乏味。于是博主给大家出了一个easyx开发软件的教程哦~快乐学编程

 

2.EasyX的安装

操作系统:Windows XP(sp3) 及以上操作系统。
编译环境:Visual C++ 6.0,Visual Studio 2008 至 Visual Studio 2022 (x86 & x64)。

大家不要拿着devc++,gcc去下个EasyX图形库然后跟博主说我的用不了咧

 

安装网址(<—点这里)安装过程很简单,跟着指导来即可,而且不需要考虑会不会安装位置不对,在安装的时候它会找到你的vs的安装文件对应的位置进行安装,由于博主的vs版本是2013和2019,所以我安装的也是13和19的(两个都安装了),不出意义的话大家是可以去下载vs2022版本的EasyX的。
 
在这里插入图片描述

 

开始教程

 

特别注意:大家平时写程序怎么创建项目,就怎么创建项目即可,但是注意我们在使用EasyX的时候,源文件后缀要是.cpp

 

1.基本概念

1.1颜色

总所周知,所有的颜色都可以由三原色构成 :

  • R – red – 红色
  • G – green – 绿色
  • B – blue – 蓝色

简称RGB,也就是说只要有这三种颜色,那么我们可以通过改变这三种颜色的浓度值,即可构成不同的颜色

在这里插入图片描述

例如上述画板选中的颜色的值可以表示成RGB(128,128,192)

其中R G B的值的范围都是0~255

 

1.2坐标

  没有小看大家,我们在数学中就已经学过平面直角坐标系了,如下

在这里插入图片描述

 

  而当我们使用EasyX创建的窗口的纵轴方向和上图中的是相反的。如下:

在这里插入图片描述

 

2.创建窗口 – 基本框架

  我们在使用EasyX的时候都是去调用图形库里面的接口,说白了就是学习它里面的函数怎么使用。

涉及接口

HWND initgraph(int width, int height, int flag = 0);//创建窗口

void closegraph();//关闭窗口
//参数1决定窗口的宽度,参数2决定窗口的高度,参数三决定窗口的模式

参数3#define SHOWCONSOLE		1		// 显示控制台
#define NOCLOSE			2		// 不可关闭,就是窗口的❎不见了
#define NOMINIMIZE		4		// 不可最小化,就是窗口的➖不见了  

 

代码演示1:

#include<graphics.h>//记得加上这个头文件

#include<stdio.h>

int main()
{
   
	initgraph(1024, 480,SHOWCONSOLE);
    
	getchar();//防止窗口一闪而过,我们让其等待输出停一会儿

	closegraph();//关闭窗口
	return 0;
}

  在我们创建的窗口中,宽度和高度的单位是:像素点,当然了,我们要看完整的函数声明,是可以对函数名进行,右键 > 转到定义去查看的

 

大家可以将试一试这几个参数的效果,查看更多参数可以右键>转到定义,就可以看到更到的宏参数了

上面的三个参数是可以同时放进去的,就像这样initgraph(1024, 480,SHOWCONSOLE | NOCLOSE | NOMINIMIZE);

 

再次温馨提示,源文件必须是.cpp文件

 

在这里插入图片描述

  没错上面的窗口就是我们创建出来的窗口,我们发现它的窗口名不再是对应的项目路径,而且右侧已经不再是滚动条,说明此时它已经不是控制台窗口了,没错这个现在看起来还是很low,下面我们就自己设计一下自己的窗口

 

3.颜色设置

 

 咱们先将可以设置颜色的接口介绍一遍,后面都会使用到

3.1背景颜色

  使用到的接口

void setbkcolor(COLORREF color);//设置背景颜色,参数填入颜色RGB值

void cleardevice();	//清空设备

  当这两个接收一起使用时,才能达到效果

 

3.2设置线条颜色
void setlinecolor(COLORREF color);

 

3.3设置文本颜色
void settextcolor(COLORREF color);

 

3.4设置填充颜色
void setfillcolor(COLORREF color);

 

4样式设置

 

 咱们先将可以设置样式的接口介绍一遍,后面都会使用到

 

4.1设置背景样式

可以设置成是背景是填充还是覆盖

void setbkmode(int mode);//设置背景模式

参数:
#define TRANSPARENT         1   //透明的
#define OPAQUE              2   //覆盖的
    
默认不设置的情况下是覆盖的的

 

4.2设置线条样式
void setlinestyle(int style, int thickness = 1, const DWORD *puserstyle = NULL, DWORD userstylecount = 0);

//第一个参数是设置线条的样式 -- 实线,虚线等
参数1#define PS_SOLID            0
#define PS_DASH             1       /* -------  */
#define PS_DOT              2       /* .......  */
#define PS_DASHDOT          3       /* _._._._  */
#define PS_DASHDOTDOT       4       /* _.._.._  */
    
//参数2是设置线条的宽度,单位是像素点
    
第三个参数,第四个参数大家可以不填

 

4.3设置文本样式
void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace);

//参数1:文本高度
//参数2:文本宽度
//参数3:文本的字体 -- 大家可以理解成就是填一个const char*的参数

参数三:
1. "宋体"
2. "楷体"
很多很多,大家可以试一试word里面的那些字体哪些可以用    

 
⚠:千万注意,千万注意,千万注意,很多同学在使用文本接口的时候经常报错,这是应为需要修改项目属性,我们要将使用 Unicode 字符集 — 改成 使用多字节字符集
 
在这里插入图片描述

 

5.绘制图形

  你在画板中可以画的图案,几乎都可以做到,下面我们已画圆举例

画圆示例

使用的接口

void circle		(int x, int y, int radius);		//画一个由线条边框组成,无填充的圆
void fillcircle (int x, int y, int radius);		// 画一个有线条边框,有填充的圆
void solidcircle(int x, int y, int radius);		//画一个无线条边框,有填充的圆

x y–即圆的坐标,radius – 即圆的半径

 

代码举例2:

#include<stdio.h>

#include<graphics.h>

//1.设置颜色
void set_color()
{
   
	//1.设置背景颜色,要和cleardevice一起使用
	setbkcolor(RGB(204, 232, 207));//将背景设置成浅绿色
	cleardevice();

	//2.设置线条颜色
	setlinecolor(RGB(128, 255, 255));//将线条颜色设置成天蓝色

	//3.设置填充颜色
	setfillcolor(RGB(255, 201, 14));//设置填充颜色为黄色
    
    //4.设置文本颜色
	settextcolor(RGB(245, 245, 245));//文本颜色设置成白色
}

//2.设置样式
void set_mode()
{
   
	//1.将背景设置成透明
	setbkmode(TRANSPARENT);

	//2.将线条设置成3个像素点宽度
	setlinestyle(PS_SOLID, 3);

	//3.将文本高度设置成20,宽度设置成10,字体设置成楷体
	settextstyle(20, 10, "楷体");
}


//3.绘制图案
void draw_picture()
{
   
	circle(50,50,50);//在(50,50)的位置画一个圆
	fillcircle(150, 50, 50);
	solidcircle(250, 50, 50);
}


int main()
{
   
	initgraph
  • 80
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 94
    评论
评论 94
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值