C++语言图形编程

今天偶然看到了C++语言图形编程,觉得非常有意思就想记录下来,以后多多研究了。

(1)首先需要将“graphics.h“头文件和“graphics.lib“库文件配置到VS2019中。配置方法如下:

C++语言图形编程_第1张图片

我们要将“graphics.h”文件复制到上图中的“include”目录中,将“graphics.lib”文件复制到上图目录中的“lib”目录中。接下来我们还要添加C++图形库,在这个网站:https://easyx.cn/可以免费下载C++图形库,下载并安装完成后我们就可以进行图形编程了。有一个前提条件,必须在“.cpp”文件里编写程序。

如果你在编程过程中使用了outtextxy()函数,那么VS可能会提示如下错误:

解决办法如下:

C++语言图形编程_第2张图片

点击最下方的“图形编程2”进入以下界面:

C++语言图形编程_第3张图片

字符集选择“使用多字节字符集”,然后点击确定,这时VS就不会报错了。

实例程序1:

#include 
#include 
#include 

void main()
{	
	srand((unsigned)time(NULL));// init randomize seed	
	initgraph(640, 480);// init graph mode

	int x, y;
	char s[2] = { 0 };

	while (!_kbhit())
	{
		for (int i = 0; i < 479; i++)
		{
			setcolor(GREEN);
			for (int j = 0; j < 3; j++)
			{
				x = (rand() % 80) * 8;
				y = (rand() % 20) * 24;

				s[0] = (rand() % 26) + 65;
				outtextxy(x, y, s);
			}

			setcolor(0);
			line(0, i, 639, i);

			Sleep(10);
			if (_kbhit()) break;
		}
	}

	closegraph();
}

程序执行结果如下:

C++语言图形编程_第4张图片

上图中的字符是动态的,可以变化,大家可以自己运行程序看一下。

程序实例2:

#include 
#include 
#include 

#define MAXSTAR 200	// 星星总数

struct STAR
{
	double x;
	int y;
	double step;
	int color;
};

STAR star[MAXSTAR];

// 初始化星星
void InitStar(int i)
{
	star[i].x = 0;
	star[i].y = rand() % 480;
	star[i].step = (rand() % 5000) / 1000.0 + 1;
	star[i].color = (int)(star[i].step * 255 / 6.0 + 0.5);	// 速度越快,颜色越亮
	star[i].color = RGB(star[i].color, star[i].color, star[i].color);
}

// 移动星星
void MoveStar(int i)
{
	// 擦掉原来的星星
	putpixel((int)star[i].x, star[i].y, 0);

	// 计算新位置
	star[i].x += star[i].step;
	if (star[i].x > 640)	InitStar(i);

	// 画新星星
	putpixel((int)star[i].x, star[i].y, star[i].color);
}

// 主函数
int main()
{
	srand((unsigned)time(NULL)); // 随机种子
	initgraph(640, 480);	// 打开图形窗口

	// 初始化所有星星
	for (int i = 0; i < MAXSTAR; i++)
	{
		InitStar(i);
		star[i].x = rand() % 640;
	}

	// 绘制星空,按任意键退出
	while (!_kbhit())
	{
		for (int i = 0; i < MAXSTAR; i++)
			MoveStar(i);
		Sleep(20);
	}
	closegraph();    // 关闭图形窗口
}

程序执行结果如下:

C++语言图形编程_第5张图片

上图中的星星是动态的,大家也可以自己运行一下程序看看,十分漂亮。

你可能感兴趣的:(C++,图形编程,C++,C++图形编程,graphics)