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

相关推荐
threelab11 小时前
Three.js 物理模拟着色器 | 三维可视化 / AI 提示词
开发语言·前端·javascript·人工智能·3d·着色器
武器大师7211 小时前
lv_binding_js 代码解读
开发语言·javascript·ecmascript
不知名的老吴11 小时前
线程的生命周期之线程“插队“
java·开发语言·python
Hello:CodeWorld12 小时前
C 风格变参 vs C++ 变参模板:核心区别与选型指南
c语言·c++·算法
kaikaile199512 小时前
数字全息图处理系统(C# 实现)
开发语言·c#
秋913 小时前
Go语言(Golang)开发工程师全景解析:岗位职责·语言优势与使用场景·各城市薪资·发展前景·高考志愿填报(2026版)
开发语言·golang·高考
十月的皮皮14 小时前
C语言学习笔记20260606- 求月份天数三种写法
c语言·笔记·学习
huangdong_14 小时前
1688商品图片采集技术解析:登录态处理与SKU图自动分类
开发语言
chase_my_dream14 小时前
C++ + SLAM 高频面试问题整理
开发语言·c++·面试
Cloud_Shy61815 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 30 - 32)
开发语言·人工智能·笔记·python·学习方法