Giter VIP home page Giter VIP logo

drawingboard's Introduction

如何运行项目

项目为纯Java项目

因为之前不清楚检查方式,文件保存的方式在导出jar后不可用(或保存的目录因系统而异),项目需在IDE环境下运行

如果助教在检查过程中遇到问题项目不能运行,或者需要导出jar检查,麻烦联系我一下 邮箱:[email protected]

助教辛苦了~

###1.IDEA打开本地项目

此压缩文件中包含的项目为IDEA项目,使用IDEA打开项目后即可运行

"open"->选择解压后的项目,打开即可

###2.从git导入项目(Java IDE均可)

git地址:https://github.com/LightBlue0824/DrawingBoard.git

3.其他Java IDE打开

因为项目为纯Java项目,可以使用类似IDEA的打开操作

使用说明

1.画图、识别、标准化

画图时,图形为基本单位,每个图形以笔画为单位(鼠标左键按下,拖动,鼠标左键释放为一笔)

  • 圆:一笔画完
  • 三角形:三笔画,每次画一条边,三条边的顺序要连续且方向一致——即从一点开始,以顺时针(或逆时针)方向画三条边
  • 长方形和正方形:四笔画,每次画一条边,四条边画的顺序和方向没有要求

画完后,点击右侧的"确认结束"按钮,这个图形绘制结束。系统会识别图形的类型并进行标准化

2.保存

保存时,未完成的图形(即未点击"确认结束")不会被保存

保存的文件名,文件名为右侧"文件名:"下的文本框中的内容,可以修改

保存后可以选择进行打开

3.打开

在右侧"打开文件:"下的选择框里,选择需要打开的文件,点击"打开已选文件"按钮

打开后可以继续进行画图、保存等操作

4.清空

点击后清空画板

代码说明

1.结构说明

分层结构,分为展示层、逻辑层、数据层。层与层之间通过接口交互

  • 展示层:界面展示,画图功能,按钮等监听
  • 逻辑层:对所画的图形进行处理(识别、标准化),为展示层提供保存、读取等接口
  • 数据层:实现画板的保存和读取功能

util包:MyBoard,MyShape, Point三个类,对应画板、图形、点的类。三个层共用

2.实现

功能

  • 识别:采取笔画识别,长方形和正方形通过长宽比确定
  • 标准化:详见代码&注释
    • 圆:中心点和半径
    • 三角形:取出三个顶点
    • 长方形和矩形:从一个点开始,通过边长、角度、方向(顺时针、逆时针)计算出后续顶点坐标
  • 保存和打开:序列化

数据结构

考虑到顺序访问和随机访问均有,并且占比相差不大;长度不固定

所以使用了ArrayList

drawingboard's People

Contributors

lightblue0824 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.