easyx 简介

http://www.easyx.cn/算法

基本说明

许多学编程的都是从 C 语言开始入门的,而目前的现状是:编程

  1. 有些学校以 Turbo C 为环境讲 C 语言,只是 Turbo C 的环境实在太老了,复制粘贴都很不方便。函数

  2. 有些学校直接拿 VC 来说 C 语言,由于 VC 的编辑和调试环境都很优秀,而且 VC 有适合教学的免费版本。惋惜在 VC 下只能作一些文字性的练习题,想画条直线画个圆都很难,还要注册窗口类、建消息循环等等,初学者会受严重打击的。初学编程想要绘图就得用 TC,非常无奈。学习

  3. 还有计算机图形学,这门课程的重点是绘图算法,而不是 Windows 编程。因此,许多老师不得不用 TC 教学,由于 Windows 绘图太复杂了,会偏离教学的重点。新的图形学的书有很多是用的 OpenGL,但是门槛依然很高。调试

  因此,咱们想给你们一个更好的学习平台,就是 VC 方便的开发平台和 TC 简单的绘图功能,因而就有了这个 EasyX 库。若是您刚开始学 C 语言,或者您是一位教 C 语言的老师,再或者您在教计算机图形学,那么这个库必定会让您兴奋的。code

示例代码

该程序实现了二维星空的动态效果

 

// 编译环境:Visual C++ 6.0,EasyX 2018春分版
// http://www.easyx.cn
//
#include <graphics.h>
#include <time.h>
#include <conio.h>

#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();					// 关闭绘图窗口
}
相关文章
相关标签/搜索