在2017年的时侯通过C语言和EasyX图形库编写了一个简单的像素绘图画板,当时是因为看了一个制作小游戏的视频,然后不知道干啥看到了一种像素风的图片,脑袋一热就写了一个像素绘画板。

话不多说,将代码分享出来:

#include

#include

#include

void gamebegin(void); //游戏开始界面

void gameplay(void); //玩游戏具体过程

void close(void); //释放资源

COLORREF colorArr[27]={ RGB(0,0,0),RGB(124,0,0),RGB(255,0,0),

RGB(0,0,124),RGB(124,0,124),RGB(255,0,124),

RGB(0,0,255),RGB(124,0,255),RGB(255,0,255),

RGB(0,124,0),RGB(124,124,0),RGB(255,124,0),

RGB(0,124,124),RGB(0124,124,124),RGB(255,124,124),

RGB(0,124,255),RGB(124,124,255),RGB(255,124,255),

RGB(0,255,0),RGB(124,255,0),RGB(255,255,0),

RGB(0,225,124),RGB(124,225,124),RGB(255,225,124),

RGB(0,255,255),RGB(124,255,255),RGB(255,255,255)};

void main()

{

gamebegin();

gameplay();

close();

//printf("谢谢使用!\n按任意键结束······\n\n\n\n\n\t\t\t\t\n\n");

}

void gamebegin()//游戏开始界面

{

initgraph(1500,800);//长宽1500*800

setbkcolor(RGB(180,238,180));// 用背景色清空屏幕

cleardevice();

//绘制27色小球

for(int y=80,i=0;y<780&&i<9;y+=80,i++)

{

for(int x=50,n=0;x<270&&n<3;x+=85,n++)

{

COLORREF c1=colorArr[i*3+n];

setfillcolor(c1);

setlinestyle(BS_SOLID);

setlinecolor(RGB(215,215,215));

fillcircle(x,y,29);

}

}

for(y=75,i=0;y<775&&i<9;y+=80,i++)//对应26个数字

{

for(int x=45,n=0;x<265&&n<3;x+=85,n++)

{

char a[30];

COLORREF c2=colorArr[i*3+n];

setbkcolor(c2);

settextcolor(RGB(50,50,80));

settextstyle(20, 0, _T("黑体"));

sprintf(a,"%d",i*3+n);

outtextxy(x, y, a);

}

}

//绘制清空按钮

setlinecolor(RGB(0,200,200));

setlinestyle(BS_SOLID,5);

rectangle(265,80,305,720);

rectangle(265,290,305,510);

settextcolor(RGB(0,0,0));

settextstyle(30, 0, _T("楷体"));

setbkcolor(RGB(180,238,180));

outtextxy(270,150,"保");

outtextxy(270,190,"存");

outtextxy(270,335,"点");

outtextxy(270,370,"击");

outtextxy(270,405,"清");

outtextxy(270,440,"屏");

//绘制网格

setlinecolor(RGB(200,200,200));

setlinestyle(BS_SOLID,10);

rectangle(325,5,1495,795);

setlinecolor(RGB(150,150,150));

setlinestyle(BS_SOLID);

for(int x=335;x<1490;x+=10)

for(int y=15;y<790;y+=10)

rectangle(x+5,y+5,x-5,y-5);

}

void close()//释放资源

{

getch();

closegraph();

return;

}

void gameplay()//玩游戏具体过程

{

COLORREF c3;

while(true)//对网格上色操作

{

while(MouseHit())

{

MOUSEMSG m=GetMouseMsg();//定义鼠标信息

switch(m.uMsg)

{

case WM_MOUSEMOVE://鼠标移动

if(m.mkLButton)

{//27色圆的范围,选择颜色

for(int y=80,i=0;y<780&&i<9;y+=80,i++)

{

for(int x=50,n=0;x<270&&n<3;x+=85,n++)

{

if(m.x<=x+25&&m.y<=y+25&&m.x>=x-25&&m.y>=y-25)

c3=colorArr[i*3+n];

for(int x=335;x<1490;x+=10)//网格范围,涂颜色,点击左键移动涂色

for(int y=15;y<790;y+=10)

if(m.x<=x+4&&m.y<=y+4&&m.x>=x-4&&m.y>=y-4)

{

setfillcolor(c3);

fillrectangle(x+5,y+5,x-5,y-5);

}

}

}

}

if(m.mkRButton)

{

for(int a=335;a<1490;a+=10)

for(int b=15;b<790;b+=10)

if(m.x<=a+4&&m.y<=b+4&&m.x>=a-4&&m.y>=b-4)

{

setfillcolor(RGB(180,238,180));

fillrectangle(a+5,b+5,a-5,b-5);

}

}

break;

case WM_LBUTTONDOWN://左键点击

//if(m.uMsg=WM_MOUSEMOVE||m.mkLButton)

//{

{//27色圆的范围,选择颜色

for(int y=80,i=0;y<780&&i<9;y+=80,i++)

{

for(int x=50,n=0;x<270&&n<3;x+=85,n++)

{

if(m.x<=x+25&&m.y<=y+25&&m.x>=x-25&&m.y>=y-25)

c3=colorArr[i*3+n];

for(int x=335;x<1490;x+=10)//网格范围,涂颜色,点击涂色

for(int y=15;y<790;y+=10)

if(m.x<=x+4&&m.y<=y+4&&m.x>=x-4&&m.y>=y-4)

{

//setlinecolor(c3);

setfillcolor(c3);

fillrectangle(x+5,y+5,x-5,y-5);

}

}

}

}

//}

if(m.x<=303&&m.x>=267&&m.y>=82&&m.y<=288)//保存操作

{

setlinecolor(RGB(0,150,200));

setlinestyle(BS_SOLID,5);

rectangle(265,80,305,290);

char str[200];

int wj=0;

for(wj=0;wj<100;)

{

sprintf(str,"C:\\Users\\念·墨白\\Desktop\\像素绘图\\保存\\%d.bmp",wj);

if(fopen(str,"r")!=NULL)

wj++;

else

{

saveimage(str);

break;

}

}

Sleep(100);

return ;

}

if(m.x<=303&&m.x>=267&&m.y>=292&&m.y<=508)//清空操作

{

closegraph();

gamebegin();

}

break;

case WM_RBUTTONDOWN:

{

for(int a=335;a<1490;a+=10)

for(int b=15;b<790;b+=10)

if(m.x<=a+4&&m.y<=b+4&&m.x>=a-4&&m.y>=b-4)

{

setfillcolor(RGB(180,238,180));

fillrectangle(a+5,b+5,a-5,b-5);

}

}

}

}

}

}

效果图,如下:

使用说明:

鼠标左键

鼠标右键

保存

点击清屏

则色和填涂

橡皮擦

路径要在代码中定义、low爆了

应该不会变白板233

这是我画的:

这是妹妹画的:

说明:由于是2017年5月份左右,用时3天写完的,所以有许多不足的地方,性能方面,功能方面,界面美化方面等等,而且现在我也看不懂了,小纠结~~

你可能不会好奇我为什么要在2020年1月20日写下这一篇文章,时隔emmmm~我掐指算一算

巧了,我也没算出来。

其实,我是因为刚注册了来试试看这个后台怎么样,然后就复制粘贴了一篇我在另一个平台写的文章来试试效果。

既然神奇搜索引擎安排你搜到这条信息,并且冥冥之中有一股神奇的魔力让你点开了这篇文章,读到了此处...... 那么感谢你一下,啦啦啦~

c语言画板,简单的像素画板(C语言编写)相关推荐

  1. java和c语言哪个简单_Java编程和C语言哪个好学

    学哪种编程语言好?计算机编程语言非常多,诸如Java.C.C++.PHP等,很多人在选择的时候都会觉得头大.到底学哪种编程语言好? 很多人都拿Java和c相比较,那么今天小编就来先说说我的个人理解吧, ...

  2. 标准c语言建立简单的web服务器,C语言写的简易实用的web服务器

    码农公社  210.net.cn  210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. Apache在码农界是比较知名的,它也是目前最接地气.使用最广泛的Web服务器 ...

  3. 简单常用滤波算法c语言实现,简单常用滤波算法C语言实现

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xiao2yizhizai/article/details/51026151 1.限幅滤波算法(程序判 ...

  4. 【软件开发】Java语言的简单介绍

    Java语言的简单介绍 一.Java语言的介绍 二.Java的版本 三.JDK的介绍 四.Java API文档 五.Java语言的特点 1. 面向对象 2. 解释性 3. 多线程 4. 可移植性 / ...

  5. 简单五子棋游戏c语言简单,C语言制作简单的五子棋游戏

    原标题:C语言制作简单的五子棋游戏 C语言制作简单的五子棋游戏 学习C语言的人很多,但是用C语言很少,而用来为自己所用,来做游戏的人就更少了,很多人都是跟着学校学习,学校讲到哪就坐到哪,但是以后却还是 ...

  6. C++基础语言熟悉---简单画板绘制

    C++基础语言熟悉-简单画板绘制 *介绍 学一门语言最好的方法就是通过各种项目实战来巩固基础语法,使之烂熟于指尖! 小白第一次模仿创作,如有错误及更好的补充还请各位不吝赐教! 代码分析 1.创建窗口 ...

  7. html格子像素画,canvas像素画板的实现代码

    最近项目上要实现一个类似像素风格的画板,可以像素小格子可以擦除,框选变色,可以擦出各种图形,这样一个小项目看似简单,包含的东西还真不少. 绘制像素格子 我们先定义像素格子类 Pixel = funct ...

  8. canvas像素画板

    最近项目上要实现一个类似像素风格的画板,可以像素小格子可以擦除,框选变色,可以擦出各种图形,这样一个小项目看似简单,包含的东西还真不少. 绘制像素格子 我们先定义像素格子类 Pixel = funct ...

  9. 用Java实现简单的画画画板

    用Java实现简单的画画画板 一:代码 先直接上代码吧,备注大部分都在代码中. import java.awt.*; import javax.swing.*; import java.util.*; ...

最新文章

  1. Oracle 监听器无法启动(TNS-12537,TNS-12560,TNS-00507)
  2. 背水一战 Windows 10 (19) - 绑定: TemplateBinding 绑定, 与 RelativeSource 绑定, 与 StaticResource 绑定...
  3. 个人博客前端模板_博客设计——概述
  4. SQL Server 2008带字段注释导入Power Designer 9.5
  5. BootstrapVue UI组件
  6. 并行和并发有什么区别?
  7. 解析xml_Mybatis中mapper的xml解析详解
  8. Vue报错:Unknown custom element: router-view - did you register the component correctly页面中不显示链接
  9. 交叉编译出现skipping incompatible_交叉编译bluez-5.50
  10. 触摸事件touchevent
  11. mfc 请求java_MFC使用WinHttp实现Http访问
  12. Unity中的资源管理-一整套简单的资源管理方案(1)
  13. CodeVs 3315 时空跳跃者的魔法(最终版本)
  14. IOS 编程初体验 第一篇:自学和培训的选择
  15. Linux如何卸载坚果云,解决ubuntu16.04安装坚果云闪两下打不开问题(示例代码)
  16. 卓一电子 智能防雷定时插座 ZYT21时控开关 定时功能设置说明书
  17. 腾讯云LAMP搭建Discuz 域名解析
  18. BootstrapTable之千分位分隔符设置
  19. Manifest merger failed : Attribute meta-data#android.support.VERSION@value..
  20. Java虚拟机(JVM)-- Dump内存快照

热门文章

  1. Envi处理MODIS流程
  2. 在html页面添加了评论和回复的显示页面
  3. Qt 学习之路 2(15):标准对话框 QMessageBox
  4. CTFHUB-WEB-文件上传【06】
  5. xmanager连接linux7桌面,使用Xmanager连接CentOS 7远程桌面
  6. 写英文论文的一些心得
  7. Java网课①--->期末考试试卷
  8. LM75AD温度传感器的应用(2)
  9. Android连接网络打印机进行打印
  10. 误差反向传播的C++实现