简易绘图软件(水一期)

哈哈!

1、编写代码:

        代码:

                main:

#include <graphics.h>
#include <music.h>
#include <heker.h>
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )using namespace std;
class Point
{
protected:int x;int y;int r;int x1;int y1;
public:Point(){x = 0;y = 0;r = 0;x1= 0;y1= 0;}virtual void set(int a, int b)=0;virtual void setstart(int a,int b)=0;virtual void draw()=0;virtual void drawf()=0;int getx() const{return x;}int gety() const{return y;}
};
class MyCircle:public Point
{virtual void set(int a, int b){int dx = getx() - a;int dy = gety() -b;r = (int)sqrt(dx * dx + dy * dy);x1=a;y1=b;}virtual void setstart(int a,int b){x = a;y = b;r = 0;x1=a;y1=b;}virtual void draw(){circle(x, y, r);}virtual void drawf(){setfillstyle(SOLID_FILL,getcolor());pieslicef(x,y,0,360,r);}};
class rcircle:public Point
{
public:virtual void set(int a,int b){x1=getx() - a;y1=gety() - b;}virtual void setstart(int a,int b){x = a;y = b;r = 0;x1= 0;y1= 0;}virtual  void draw(){ellipsef(x,y,0,360,x1,y1);}virtual   void drawf(){setfillstyle(SOLID_FILL,getcolor());fillellipse(x,y,x1,y1);}
};
class Myline:public MyCircle
{
public:virtual  void draw(){line(x,y,x1,y1);}virtual  void drawf(){line(x,y,x1,y1);}
};
class Ju:public MyCircle
{
public:virtual  void draw(){rectangle(x,y,x1,y1);}virtual void drawf(){setfillstyle(SOLID_FILL,getcolor());int poly[8]={x,y,x1,y,x1,y1,x,y1};fillpoly(4,poly);}
};
int main()
{Hide();int b=0;MyCircle r;rcircle nr;Myline l;Ju ju;Point *p=&r;bool bDraw = false;	initgraph(800, 600, INIT_RENDERMANUAL);setfillstyle(SOLID_FILL,BLUE);  bar(10,20,40,50);setfillstyle(SOLID_FILL,YELLOW);bar(40,20,70,50);setfillstyle(SOLID_FILL,RED);bar(70,20,100,50);setfillstyle(SOLID_FILL,GREEN);bar(100,20,130,50);setfillstyle(SOLID_FILL,WHITE);bar(130,20,160,50);setfillstyle(SOLID_FILL,0xFF6100);bar(160,20,190,50);setfillstyle(SOLID_FILL,0xA020E0);bar(190,20,220,50);setfillstyle(SOLID_FILL,WHITE);       bar(10,51,40,81);setfillstyle(SOLID_FILL,BLACK);line(15,66,35,66);setfillstyle(SOLID_FILL,WHITE);bar(10,82,40,112);setfillstyle(SOLID_FILL,BLACK);circle(25,97,10);setfillstyle(SOLID_FILL,WHITE);bar(10,113,40,143);setfillstyle(SOLID_FILL,BLACK);rectangle(15,120,35,136);setfillstyle(SOLID_FILL,WHITE);bar(10,144,40,174);setfillstyle(SOLID_FILL,BLACK);ellipsef(25,159,0,360,10,6);setfillstyle(SOLID_FILL,WHITE);  bar(10,175,40,205);outtextxy(15,180,"实心");setfillstyle(SOLID_FILL,WHITE);bar(10,206,40,236);outtextxy(10,210,"空心");outtextxy(335,35,"粗细");      setfillstyle(SOLID_FILL,WHITE);bar(400,20,430,50);setfillstyle(SOLID_FILL,BLACK);bar(405,35,425,36);setfillstyle(SOLID_FILL,WHITE);bar(435,20,465,50);setfillstyle(SOLID_FILL,BLACK);bar(440,35,460,38);setfillstyle(SOLID_FILL,WHITE);bar(470,20,500,50);setfillstyle(SOLID_FILL,BLACK);bar(475,35,495,40);outtextxy(565,35,"线条形状");   setfillstyle(SOLID_FILL,WHITE);bar(630,20,660,50);setcolor(BLACK);setlinestyle(PS_SOLID, 0, 1, NULL);line(632,35,657,35);setfillstyle(SOLID_FILL,WHITE);bar(665,20,695,50);setcolor(WHITE);setlinestyle(PS_DOT, 0, 1, NULL);line(667,35,690,35);setlinewidth(3);                 setcolor(WHITE);line(45,55,45,595);line(45,55,795,55);line(45,595,795,595);line(795,55,795,595);setlinewidth(1);setfillstyle(SOLID_FILL,WHITE);  bar(10,300,40,330);outtextxy(10,305,"清屏");setfont(16, 0, "宋体");setcolor(0x00F000F0);setbkcolor(BLACK);setlinestyle(PS_SOLID);mouse_msg msg = {0};for ( ; is_run();delay_fps(60))	{while (mousemsg()){msg = getmouse();}if (msg.is_down())					{if (msg.is_left())				{  BeepMusic("SNA.wav");if(msg.x>9&msg.x<41&msg.y>19&msg.y<51){setcolor(0x0000FF);}else if(msg.x>39&msg.x<71&msg.y>19&msg.y<51){setcolor(0xFFFF00);}else if(msg.x>69&msg.x<101&msg.y>19&msg.y<51){setcolor(0xFF0000);}else if(msg.x>99&msg.x<131&msg.y>19&msg.y<51){setcolor(0x00FF00);}else if(msg.x>129&msg.x<161&msg.y>19&msg.y<51){setcolor(0xFFFFFF);}else if(msg.x>159&msg.x<191&msg.y>19&msg.y<51){setcolor(0xFF6100);}else if(msg.x>189&msg.x<211&msg.y>19&msg.y<51){setcolor(0xA020E0);}else if(msg.x>399&msg.x<431&msg.y>19&msg.y<51){setlinewidth(1);setcolor(getcolor());}else if(msg.x>434&msg.x<466&msg.y>19&msg.y<51){setlinewidth(3);setcolor(getcolor());}else if(msg.x>469&msg.x<501&msg.y>19&msg.y<51){setlinewidth(9);setcolor(getcolor());}else if(msg.x>9&msg.x<41&msg.y>299&msg.y<331){setfillstyle(SOLID_FILL,BLACK);bar(48,58,792,592);}else if(msg.x>630&msg.x<650&msg.y>20&msg.y<50){setlinestyle(PS_SOLID, 0, 1, NULL);setcolor(getcolor());}else if(msg.x>665&msg.x<695&msg.y>20&msg.y<50){setlinestyle(PS_DOT, 0, 1, NULL);setcolor(getcolor());}else if(msg.x>9&msg.x<41&msg.y>50&msg.y<82){p=&l;}else if(msg.x>9&msg.x<41&msg.y>81&msg.y<113){p=&r;}else if(msg.x>9&msg.x<41&msg.y>112&msg.y<144){p=&ju;}else if(msg.x>9&msg.x<41&msg.y>143&msg.y<175){p=&nr;}else if(msg.x>9&msg.x<41&msg.y>174&msg.y<206)//设置一个选择实心空心的开关{b=1;}else if(msg.x>9&msg.x<41&msg.y>205&msg.y<237){b=0;}
else {p->setstart(msg.x,msg.y);setwritemode(R2_XORPEN);	bDraw = true;                  }
}
}if (msg.is_right())		{if (bDraw){   BeepMusic("WIN.wav");if(b==0){p->draw();}else p->drawf();					setwritemode(R2_COPYPEN);bDraw = false;}}else if (msg.is_move())				{if (bDraw){if(b==0){p->draw();}else p->drawf();			p->set(msg.x,msg.y);if(b==0){p->draw();}			else p->drawf();}}else if (msg.is_up())			{if (bDraw){setwritemode(R2_COPYPEN);	p->set(msg.x,msg.y);if(b==0){p->draw();}			else p->drawf();bDraw = false;}}xyprintf(0, 0, "x=%4d y=%4d", msg.x, msg.y);}
closegraph();
return 0;
}

        效果:

 

 

2、更改名称:

编译运行之后,得到文件如图:

更改名称为"Coco绘图软件"。

3、更改图标:

详情请见C++:如何更改程序图标?-CSDN博客

4、下载音乐

有两个音乐,下载地址:CSDN2.0云服务器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/471596.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 幻兽帕鲁服务器怎么上传存档文件?

通过控制台远程连接到 Linux 服务器后&#xff0c;你可以打开文件树&#xff0c;然后找到幻兽帕鲁存档位置&#xff0c;将存档压缩包上传到 Pal 目录中。 记得替换存档前要先停止服务。 2. 然后将 Saved.tar 文件解压&#xff0c;并完全替换新服务器上的 Saved 存档目录即可。 …

python速成(2)、

​​​​​​​

【数据库】哪些操作会导致索引失效

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;数据库 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 结语 我的其他博客 前言 在数据库管理中&#xff0c;索引的有效性对于查询性能至关重要。然而&#xff0c;索引可能会因为各种操…

P1649 Obstacle Course S(dfs卡方向数组/bfs)

传送门https://www.luogu.com.cn/problem/P1649 开始拿到题&#xff0c;发现数据范围是100&#xff0c;于是我尝试用dfs一做&#xff0c;写完后发现是90分&#xff0c;TLE一个点。于是乎观看题解&#xff08;我还以为能剪枝掉&#xff09;&#xff0c;发现改一下遍历方向就能过…

积分(二)——复化Simpson(C++)

前言 前言 simpson积分 simpson积分公式 ∫ a b f ( x ) d x ≈ b − a 6 [ f ( a ) f ( b ) 4 f ( a b 2 ) ] \int_{a}^{b}f(x)dx \approx \frac{b-a}{6}[f(a)f(b)4f(\frac{ab}{2})] ∫ab​f(x)dx≈6b−a​[f(a)f(b)4f(2ab​)] 与梯形积分类似&#xff0c;当区间[a,b]较…

AI大模型学习笔记之五:监督学习--数据如何驱动决策

监督学习&#xff0c;又称为监督式机器学习&#xff0c;是机器学习和人工智能领域的一个重要分支。 其基本原理是利用带有标签的数据集来训练算法&#xff0c;以实现精确分类数据或预测结果的目标。 在监督学习中&#xff0c;通过将数据输入模型&#xff0c;并不断调整数据权…

【知识整理】产研中心岗位评定标准之大数据岗位

为贯彻执行集团数字化转型的需要,该知识库将公示集团组织内各产研团队不同角色成员的职务“职级”岗位的评定标准; 一、定级定档目的 通过对公司现有岗位及相应岗位员工的工作能力、工作水平进行客观公正评定,确定各岗位的等级及同等级岗位员工对应的档级,从而为员工以后的晋升…

CSS篇--transform

CSS篇–transform 使用transform属性实现元素的位移、旋转、缩放等效果 位移 // 语法 transform:translate(水平移动距离&#xff0c;垂直移动距离) translate() 如果只给一个值&#xff0c;表示x轴方法移动距离 单独设置某个方向的移动距离&#xff1a;translateX() transla…

bpmn-js 事件总线处理

bpmn-js中使用EventBus作为事件的处理句柄&#xff0c;EventBus的使用和我们常规使用的事件总线没啥大的区别&#xff0c;其源码位于&#xff1a;/diagram-js/lib/core/EventBus.js &#xff08;bpmn-js使用diagram-js实现流程图的web端绘制呈现工具&#xff09;。 EventBus使用…

我的NPI项目之Android USB 系列(一) - USB的发展历史

设计目的 USB was designed to standardize the connection of peripherals to personal computers, both to exchange data and to supply electric power. 一个是为了标准化电脑连接外设的方法。 能够支持电脑和外设的数据交互和&#xff08;对外&#xff09;供电。 目前已…

fgets的使用方法详解

fgets的使用 文章目录 fgets的使用前言&#xff08;吹水&#xff0c;不看也罢&#xff09;fgets 的基本语法使用示例fgets() 对输入的处理的特点gets() 与 fgets() 的主要区别 总结 前言&#xff08;吹水&#xff0c;不看也罢&#xff09; 鼠鼠今天在B站上大学的时候&#xff…

洛谷_P1116 车厢重组_python写法

这道题看起来很高级其实就是冒泡排序执行的次数。 那对于python而言的话&#xff0c;这道题最大的难点在于如何实现数据输入既可以是以空格隔开的数据又可以是换行隔开的数据&#xff0c;那代码里面有了十分详细的解释。 n int(input()) l [] while len(l) < n: # 如果没…