项目为纯Java项目
因为之前不清楚检查方式,文件保存的方式在导出jar后不可用(或保存的目录因系统而异),项目需在IDE环境下运行
如果助教在检查过程中遇到问题项目不能运行,或者需要导出jar检查,麻烦联系我一下 邮箱:[email protected]
助教辛苦了~
###1.IDEA打开本地项目
此压缩文件中包含的项目为IDEA项目,使用IDEA打开项目后即可运行
"open"->选择解压后的项目,打开即可
###2.从git导入项目(Java IDE均可)
git地址:https://github.com/LightBlue0824/DrawingBoard.git
因为项目为纯Java项目,可以使用类似IDEA的打开操作
画图时,图形为基本单位,每个图形以笔画为单位(鼠标左键按下,拖动,鼠标左键释放为一笔)
- 圆:一笔画完
- 三角形:三笔画,每次画一条边,三条边的顺序要连续且方向一致——即从一点开始,以顺时针(或逆时针)方向画三条边
- 长方形和正方形:四笔画,每次画一条边,四条边画的顺序和方向没有要求
画完后,点击右侧的"确认结束"按钮,这个图形绘制结束。系统会识别图形的类型并进行标准化
保存时,未完成的图形(即未点击"确认结束")不会被保存
保存的文件名,文件名为右侧"文件名:"下的文本框中的内容,可以修改
保存后可以选择进行打开
在右侧"打开文件:"下的选择框里,选择需要打开的文件,点击"打开已选文件"按钮
打开后可以继续进行画图、保存等操作
点击后清空画板
分层结构,分为展示层、逻辑层、数据层。层与层之间通过接口交互
- 展示层:界面展示,画图功能,按钮等监听
- 逻辑层:对所画的图形进行处理(识别、标准化),为展示层提供保存、读取等接口
- 数据层:实现画板的保存和读取功能
util包:MyBoard,MyShape, Point三个类,对应画板、图形、点的类。三个层共用
- 识别:采取笔画识别,长方形和正方形通过长宽比确定
- 标准化:详见代码&注释
- 圆:中心点和半径
- 三角形:取出三个顶点
- 长方形和矩形:从一个点开始,通过边长、角度、方向(顺时针、逆时针)计算出后续顶点坐标
- 保存和打开:序列化
考虑到顺序访问和随机访问均有,并且占比相差不大;长度不固定
所以使用了ArrayList