基于.net之仿Windows画板设计
队 长:周 洋
小组成员:周寅莹 袁晓旭 江春鹏 蒋彬含 朱振宇 屈生辉 万里骏 彭子航
指导老师:余敦辉
所在班级:湖北大学计算机科学与技术2016级
摘要: 随着社会的不断发展以及计算机的不断普及,人们对绘图的要求越来越高,对绘图功能也提出了更高更全面的要求。不同年龄不同身份的人,需求有所不同。现在普通用户普遍使用的是Windows系统下自带的Windows画图工具,它可以实现最为基本的画图功能,但使用起来不够灵活,功能也不是很完善。基于此,本设计尝试按照Windows画图工具的设计思想,综合考虑多方面因素,通过C# 程序语言开发设计一款基于 .Net Framework的功能更为完善、使用起来更为灵活的WinForm窗体画图软件,使其不仅能够达到满足日常画图的需求,且具有便于存储编辑和展示、功耗小、易扩展、界面人性化等优点。
关键词: C#;.Net Framework;WinForm窗体;画图软件
绪论
随着操作系统不断的更新换代,其自带的画图板界面及功能也在不断变化,例如XP、Vista、Win10,它们画图板的界面布局风格以及功能都有所不同,这表明尽管是简简单单的一个操作系统自带画图板,系统设计人员也没有停止对它的不断研究与探索,他们在不断地寻找更为人性化、更能满足大众需求的设计模式。随着社会的不断发展以及计算机的不断普及,人们对画的要求越来越高,对绘图功能也提出了更高更全面的要求。许多用户由于自身的画图习惯或者是画视觉效果不同,对传统的画图工具可能感觉不是特别满意,就像孩子总是喜欢画可爱型,而成人则画实用的。不同年龄不同身份的人,需求不同。现在大众普遍使用的是Windows系统下自带的Windows画图软件,它可以实现一些简单的基本画图功能,但缺乏灵活性。本次课程设计就是基于Windows画图软件的思想,综合考虑多方面因素,尝试开发一款仿Windows画板,使其能达到满足日常画图的需求,便于存储编辑和展示,且要求功耗小且界面人性化,功能易扩展。
软件需求分析
基本图形
为了满足用户的基本画图需要,我们一共提供了22种基本图形,具体包括直线、曲线、椭圆、矩形、圆角矩形、任意圆弧、任意多边形、等腰三角形、直角三角形、菱形、五六边形、四五六角星、上下左右四个方向的箭头、圆角文本框、折线、直角线。
基本字符
考虑到用户在绘图过程中,难免会有需要用到字符的时候,对此,我们提供了四种字符形式供用户选择,分别为汉字、字母、数字和符号。
样式选择
为了避免线条样式的单一,我们提供颜色和线型两种选择。其中,颜色包括固定的颜色盘和允许自定义的调色盘;线型包括线形和线宽。具体介绍如下:
颜色盘:颜色盘提供了固定的、最基本的十二种颜色;
调色盘:允许用户自定义颜色;
线形:线条的形状有五种,分别为直线、虚线、双点划线、点划线和双划线。其中,点线可以用来表示立体线框中可见的轮廓线;虚线可以用来表示立体线框中不可见的轮廓线;点划线、双点划线可以用来表示中心线;
线宽:线条的宽度为1~20个像素单位;
基本操作
文件操作及加载
用户画图,有时候并不是一次就能完成,往往需要先暂时保存,然后下次再接着绘制。因此,画板必须能够提供存储和再次打开,加载后继续编辑的功能。同时,存储格式决定了加载的速度,无论速度快慢,都应该显示加载的过程,这样才能告诉用户整个加载过程的进度如何,而不是让用户盲等,这样体验效果极其不佳。
撤销
用户画图,绝不是一蹴而就,一帆风顺的,免不了出现各种错误,如若没有撤销功能,那么一旦出错就将前功尽弃,半天的心血化为一滩泡影,这是用户最不希望看到、最不能忍受的,因此必须具备撤销功能。对此,我们提供了两种撤销模式,分别为向前撤销和向后撤销。
向后撤销:如果用户执行了一步操作后,觉得不满意,便可以通过向后撤销回到上一步
向前撤销:如果用户撤销当前操作后,又后悔了,那么便可以使用向前撤销,回到撤销前的状态
复制、剪切、粘贴
画图过程中,若需要频繁的使用某一种图形、并对其进行操作是一件非常繁琐的事情,若能直接在原图形上进行拷贝,再进行少量修改,将节省用户不少时间。因此,复制和粘贴这两种功能必不可少。
剪切是删除和复制的结合体,它不同于删除,因为删除某个图形,那么这个图形便真的不复存在,但剪切相当于是将图形从画板上移到另一个地方保存起来,等到要用的时候,便把它再次取出来,以复制的形式进行粘贴,这也给用户的操作带来了便利。
核心操作
图形填充
图形填充分为直接图形填充和区域填充两种形式,其中前者是选中图形,对图形内部进行填充;而后者则是指定一个闭合的区域,进行填充。相较于前者,后者具有更高的灵活性,但两者均可以通过调色板来选则填充的颜色。
画面裁剪
画面裁剪分为内裁剪和外裁剪两种形式,裁剪框为虚线矩形。其中,内裁剪只保留裁剪框内部的内容,裁剪框外部的内容丢弃;外裁剪只保留裁剪框外部的内容,裁剪框内部的内容丢弃。两种模式均满足裁剪前是一个图形,裁剪后仍是一个图形的“封闭原则”。
图形选中
图形的选中,是为了便于对图形进行各项操作,包括平移、缩放、对称等。因此,为了便于后面的操作,在图形选中这一板块,必须把图形用来进行操作的各个热点显示出来,包括矩形的四个顶点以及四条边的中点(用一个红色虚线矩形框将被选中图形包裹,表示该图形被选中)。
组合与打散
画图过程中,难免会存在需要同时将两个或多个图形一起移动的情形或者用户希望将多个简单的基本图形组合为更为复杂的图形,那么组合与打散便是不可或缺的操作,它给用户大规模操作、自定义图形提供了便捷。
对称、旋转、平移、缩放
画图中最基本的操作莫过于平移、对称、旋转和缩放,它允许用户随意的对图形的大小、位置、方向进行操作,以满足画图的需要,
图形的对齐
要想画图好看,少不了各种形式的对齐,对此,我们提供了三种对齐选择,分别为左对齐、右对齐和居中对齐。
图形的檫除
图形的擦除又可以理解为图形的删除,对于已经操作了很久才发现的无用图形,是无法通过撤销而去除的,这时候就需要手动的擦除某个指定的图形,增加了图形操作的灵活性。
状态选择
状态选择是为了给用户提供更好的界面效果,方便用户作图。对此,我们提供了三种画板状态,分别为标尺、网格线和状态栏,并且这三种状态用户可以根据自身需要随意组合。
标尺:在画板周围显示刻度,方便用户衡量图形的大小
网格线:网格线可以让用户更直观地观察直线是否水平或垂直、多个图形的相对位置和是否对齐
状态栏:状态栏显示焦点坐标,方便用户掌握鼠标的位置
PPT展示
项目源代码
本项目的源代码已在作者的github个人主页上发布,欢迎各位读者下载使用HubuPaint。
相关下载
1、PPT展示文件(提取码:5670)
2、概要设计书说明书(提取码:yckz)
3、计算机图形学课程设计文档–.net的画板设计(提取码:xiyv)
4、软件需求说明书(提取码:fhl0)
5、详细设计书说明书(提取码:k3ld)
6、用户使用说明书(提取码:lue0)
声明
此项目不可作为商业用途,仅供热爱计算机图形学的工作者参考学习,内部代码出现的任何问题本团队一概不负责,如有学习或者代码咨询等问题,可以留言联系本人,特此声明! 周 洋 2019/06/08