当前位置: 首页 > article >正文

C语言之easyX

目录

概要

easyX整体架构

图形绘制

画布宽高

圆形

图片的贴图

加载图像

游戏框架


概要

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

easyX整体架构

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

图形绘制

画布宽高

#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:圆的半径。

返回值:无

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

#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;
}

图片的贴图

加载图像

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


http://www.kler.cn/a/549356.html

相关文章:

  • 基于 Python 和 OpenCV 的酒店客房入侵检测系统设计与实现
  • 本地大模型编程实战(17)RAG(Retrieval Augmented Generation,检索增强生成)(1)
  • 使用maven-archetype制作项目脚手架
  • 栈与队列(C语言版)
  • Macos机器hosts文件便捷修改工具——SwitchHosts
  • C#: String s = new String(“Hello“)无法编译?编程语言字符集有两个?为什么这种变量名“\u0061\u0062”都能编译通过?
  • SpringCould+vue3项目的后台用户管理的CURD【Taurus教育平台】
  • 【Elasticsearch入门到落地】8、RestClient操作索引库-基础介绍及导入demo
  • 基于STM32的智能路灯节能控制系统
  • CentOS 7 企业级Redis 7部署指南
  • 【第15章:量子深度学习与未来趋势—15.3 量子深度学习在图像处理、自然语言处理等领域的应用潜力分析】
  • git lfs 安装方法
  • 自学Java-面向对象高级(final、单例类、枚举类、抽象类、接口)
  • 反向代理ml
  • React:初识React
  • 利用MATLAB的linkaxes函数实现子图频率轴同步缩放
  • Hive查询之分组与Join
  • 链表 —— 常用技巧与操作总结详解
  • [思考记录.AI]关于Deepseek-r1的思维链
  • DeepSeek 助力 Vue 开发:打造丝滑的评分组件(Rating)