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图形界面编程,为以后的项目开发奠定良好的基础。祝你学习顺利!

相关推荐
Aric_Jones1 小时前
lua入门语法,包含安装,注释,变量,循环等
java·开发语言·git·elasticsearch·junit·lua
Akiiiira1 小时前
【日撸 Java 三百行】Day 12(顺序表(二))
java·开发语言
EndingCoder1 小时前
2025年JavaScript性能优化全攻略
开发语言·javascript·性能优化
Despacito0o2 小时前
QMK键盘固件自定义指南 - 打造你的专属键盘体验
c语言·计算机外设·qmk
码上淘金6 小时前
【Python】Python常用控制结构详解:条件判断、遍历与循环控制
开发语言·python
Brilliant Nemo6 小时前
四、SpringMVC实战:构建高效表述层框架
开发语言·python
格林威8 小时前
Baumer工业相机堡盟工业相机的工业视觉中为什么偏爱“黑白相机”
开发语言·c++·人工智能·数码相机·计算机视觉
橙子199110168 小时前
在 Kotlin 中什么是委托属性,简要说说其使用场景和原理
android·开发语言·kotlin
androidwork8 小时前
Kotlin Android LeakCanary内存泄漏检测实战
android·开发语言·kotlin
学地理的小胖砸8 小时前
【Python 基础语法】
开发语言·python