成果展示
首先展示几个使用本绘图板程序的绘图成果。
下面是程序的功能介绍(也是由本绘图板程序绘制的)。
总体架构
由三个包和一个主窗口类构成,utils包中为绘制图形中用到的所有工具类,element包中为所有的图形元素类,strategy包中为所有的绘图策略类。
大致的设计思想是,utils包中存储本程序中用到的所有工具,有绘图处理工具,输入处理工具,渲染处理工具;element包中存储所有需要绘制的图形元素;strategy包中存储所有所需的绘图策略;最后由一个主程序调用策略去执行图形元素的绘制。所有类的简要说明如下表。
- 类及接口的一览表
包 | 类名/接口名 | 说明 |
---|---|---|
utils | Vector2f类 | 表示一个二维向量的类,包含向量的一些运算操作,用于表示平面空间中一个点的位置 |
utils | Matrix3x3f类 | 表示三维矩阵的类,包含矩阵的一些运算操作,用于平面中图形的变换操作 |
utils | FrameRate类 | 计算帧速率的类 |
utils | Framework抽象类 | 一个抽象的利用双缓冲策略的窗口框架 |
utils | SwingFramework抽象类 | 一个使用Swing做绘制实现的窗口框架 |
utils | SafeKeyboardInput类 | 一个安全的处理键盘输入的类 |
utils | RelativeMouseInput类 | 一个可以切换相对/绝对鼠标模式的处理鼠标输入的类 |
utils | Utilty类 | 处理坐标变换,图形绘制,文字绘制的工具类 |
element | ImageElement抽象类 | 所有可以绘制图形类的父类 |
element | Points类 | 一个包含一系列点的类 |
element | BeginEndImageElement抽象类 | 一个可以选择起点和终点由拖动鼠标来形成的图形类 |
element | FillPolygon类 | 填充多边形类 |
element | Similarable接口 | 可以进行快捷选择操作的图形,关于快捷选择操作,后面会有详细介绍 |
element | StringElement类 | 绘制字符串的图形类 |
element | SaveImageElement类 | 当前绘制图像被保存之后,添加此类表示当前图像已被保存 |
strategy | Strategy抽象类 | 所有绘制策略类的父类 |
strategy | NullStrategy类 | 一个不做任何处理的策略类 |
strategy | PointsStrategy类 | 处理绘制一系列点(Points类)的策略类 |
strategy | BeginEndStrategy抽象类 | 处理绘制可以选择起点和终点由拖动鼠标来形成的图形类(BeginEndImageElement抽象类)的策略类 |
strategy | FillPolygon类 | 处理绘制填充多边形类(FillPolygon类)的策略类 |
strategy | StringStrategy类 | 处理绘制字符串的图形类(StringElement类)的策略类 |
default | Editor类 | 主窗口类 |
更多:
第一篇
第二篇
第三篇
第四篇
第五篇
第六篇
第七篇
最终篇
源代码