C语言之easyX

目录

概要

easyX整体架构

图形绘制

画布宽高

圆形

图片的贴图

加载图像

游戏框架


概要

easyX是一个轻量级的图形库,用于在Windows平台上进行简单的2D图形绘制。它提供了一组简单易用的函数,可以方便地绘制基本的图形元素,如线条、矩形、圆形等,也支持载入和显示图片,并提供了简单的交互功能,如键盘和鼠标事件的处理。easyX的设计目标是快速上手和简单易用,适合初学者学习图形编程和游戏开发。

easyX整体架构

cpp 复制代码
#include<graphics.h>//打开模块
#include<stdlib.h>
//结构
int main()
{
	//1创建一个绘图窗口
	//init初始化 graph图形
	initgraph(800,600);
	
	
	system("pause");
	return 0;
}

图形绘制

画布宽高

cpp 复制代码
#include <graphics.h> 
#include <stdio.h>
int main  ()
{
	initgraph(300, 400,EW_SHOWCONSOLE);//创建300*400的窗口
	 
	printf("窗口绘图区的宽 %d 窗口的高 %d",
		getwidth(),getheight());

	system("pause");//暂停: 避免窗口自动关闭
	return 0;
}

圆形

circle:这个函数用于画无填充的圆。

复制代码
void circle(
	int x,
	int y,
	int radius
);

参数

x:圆心 x 坐标。

y:圆心 y 坐标。

radius:圆的半径。

返回值:无

备注:该函数使用当前画线样式绘制无填充的圆。

cpp 复制代码
#include<graphics.h>//打开模块
#include<stdlib.h>
//结构
int main()
{
	//1创建一个绘图窗口
	//init初始化 graph图形
	initgraph(800,600);
	//绘图 //默认蓝绿红
	//setlinecolor(0x87a311);
	setlinecolor(RED);
	setlinestyle(PS_DASHDOTDOT, 3);//虚 点点 线
	setfillcolor(GREEN);
	setfillstyle(BS_HATCHED, HS_DIAGCROSS);//斜网格线填充
	for (int i = 10; i >=1; i--)
	{
		//circle(400, 300, 20*i);
		fillcircle(400, 300, 20*i);//实心圆有边
		//solidcircle(400, 300, 20*i);//实心圆没有边
	}
	
	system("pause");
	return 0;
}

图片的贴图

加载图像

cpp 复制代码
#include <graphics.h>//包含:图像库头文件
int main()
{
	initgraph(400, 400);//创建300*400的窗口
	//按图片默认大小加载
	IMAGE img1;
	loadimage(&img1, L".\\image\\鱼_0.png");//从硬盘任意位置加载图像,并默认图像大小 ,L:双字节字符的前缀
	putimage(10, 20, &img1);
	// 图片等比缩放加载
	IMAGE img2;
	loadimage(&img2, L".\\image\\鱼_0.png", 100, 50, false);//从硬盘任意位置加载图像,并按100宽50高的像素空间缩放。  false代表等比缩放 不拉伸
	putimage(10, 180, &img2);

	// 图片拉伸加载
	IMAGE img3;
	loadimage(&img3, L".\\image\\鱼_0.png", 100, 100, true);//从硬盘任意位置加载图像,并按100宽50高的像素空间缩放。  true代表拉伸
	putimage(10, 250, &img3);


	system("pause");//暂停: 避免窗口自动关闭
	return 0;
}

游戏框架

小结

通过不断地练习和实践,相信你可以快速掌握easyX图形界面编程,为以后的项目开发奠定良好的基础。祝你学习顺利!

相关推荐
祁同伟.几秒前
【C++】动态内存管理
开发语言·c++
一只鲲10 分钟前
40 C++ STL模板库9-容器2-vector
开发语言·c++
励志不掉头发的内向程序员21 分钟前
C++基础——内存管理
开发语言·c++
lifallen32 分钟前
JCTools 无锁并发队列基础:ConcurrentCircularArrayQueue
java·开发语言·数据结构·算法
千里镜宵烛1 小时前
深入理解 Linux 线程:从概念到虚拟地址空间的全面解析
开发语言·c++·操作系统·线程
Eternity_GQM1 小时前
【Word VBA Zotero 引用宏错误分析与改正指南】【解决[21–23]参考文献格式插入超链接问题】
开发语言·c#·word
张柏慈2 小时前
JavaScript性能优化30招
开发语言·javascript·性能优化
promising-w2 小时前
【嵌入式C语言】六
c语言·开发语言
打不了嗝 ᥬ᭄2 小时前
Linux 信号
linux·开发语言·c++·算法
ankleless2 小时前
C语言(11)—— 数组(超绝详细总结)
c语言·零基础·数组·二维数组·自学·一维数组