DrawTools绘图程序代码分析

在网上下载了一些使用GDI+绘图的原码来学习,一开始先找了个代码少的、逻辑比较简单的项目——DrawTools。该项目用于展示如何使用C#的GDI+来绘制简单的图形。代码从https://github.com/tolbkni/DrawTools中下载的,我看的是其中的Winform版本的实现代码,该程序代码量有两千行左右,主要实现的功能有:
  • 绘制线条
  • 绘制矩形
  • 绘制椭圆
  • 绘制自由曲线
  • 各种绘图对象的移动操作
  • 各种绘图对象的缩放操作
  • 绘图对象的序列化和反序列化
  • 本地文件的拖拽打开操作
DrawTools解决方案中总共有两个项目,如下图所示,其中DocToolKit是个类库,为DrawTools项目提供必须的类型。

DocToolKit
DocToolKit类库中包含下列类型。

  其中最重要的类型:
DocManager:该类主要负责与文档相关的操作,例如打开文档、关闭文档、保存文档,并记录与文档相关的设置,例如文档默认名称,文档初始路径等;
DragDropManager:处理用户将文件拖拽到主窗口中打开的情况;
MruManager:用于记录和处理用户最近打开的文件列表;
PersistWindowState:保存上一次关闭程序时的主窗口位置和大小, 并在本次程序启动时从注册表中读出然后初始化本次程序窗口的位置和大小。
DrawTools
DrawTools项目中的功能主要分为三大类,如下图所示:
DrawObject中主要包含在界面中绘图的类,如下图所示,DrawObject为抽象基类,它定义了在窗口中绘制不同对象的一些通用的接口,然后四个子类分别保存绘制线条、矩形、椭圆和自由曲线对象需要的信息:

  Tool中是关于不同类型绘图对象对窗口事件的响应函数类,这些类主要是处理新建绘图对象时的鼠标事件,包括鼠标按下、鼠标移动和鼠标松开三个事件:

  UndoRedoManage中的类型用于处理Undo/Redo事件,本项目中处理undo/redo采用的是Command模式,主要的命令是新建绘图对象、删除选中绘图对象、删除全部绘图对象和修改选中绘图对象属性。

 
程序运行的主程序是MainForm这个窗口,在这个窗口的启动过程中,将DocToolKit类库中的各类管理类与主窗口绑定,并创建绘图板DrawArea对象。

DrawTools程序主要用户展示如何使用GDI+绘图,里面都是一些简单的操作,通过阅读程序,认为还可以增加的功能如下:
1)窗口尺寸变化时,图形的尺寸随之改变;
2)绘制直线时,按着Shift键可以画水平、竖直、斜45度的直线;
3)绘制矩形时,按着Shift键可以画正方形;
4)绘制椭圆时,按着Shift键可以画圆形;
我阅读的代码可以在下面的链接中下载,里面还有一些我增加的注释:
http://pan.baidu.com/s/1jImmkg2
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: drawtools2005是一个常用的绘图工具软件。它提供了丰富的功能,方便用户进行各种类型的绘图工作。 首先,drawtools2005具有简洁直观的用户界面,使用户可以快速上手。它提供了多种绘图选项,例如画笔、橡皮擦、形状工具以及文本工具等,让用户能够根据需要进行自由创作。 其次,drawtools2005支持多种文件格式的导入和导出,如常见的图片格式(JPEG、PNG等)以及矢量图格式(SVG、PDF等)。这意味着用户可以将自己绘制的图形保存为不同的文件类型,方便在其他软件或平台上进行使用和编辑。 此外,drawtools2005还提供了一些高级功能,如图层管理和历史记录。图层管理功能使用户可以对绘图元素进行分组和排序,方便进行图形的调整和修改。而历史记录功能则可以帮助用户追溯和撤销之前的操作,避免由于错误操作导致的不必要的麻烦。 最后,作为一款老牌的绘图工具软件,drawtools2005拥有稳定的性能和广泛的用户群体。用户可以通过在线社区获取更多的绘图技巧和资源,与其他绘图爱好者进行互动和交流。 综上所述,drawtools2005是一款功能齐全、易于使用的绘图工具软件。它能够满足用户的绘图需求,并提供了丰富的功能和支持,使用户能够创作出精美的图形作品。 ### 回答2: drawtools2005是一款功能强大的绘图工具软件,它提供了许多方便实用的绘图功能。首先,它具有丰富的画笔工具,包括铅笔、钢笔、毛笔等,可以满足不同绘图需求。其次,drawtools2005还有大量的颜色选择,可以自由调整颜色,使绘图更加鲜明生动。此外,该软件还配备了多种效果工具,如模糊、锐化、马赛克等,可以独特地处理图像效果。 在使用drawtools2005时,用户可以方便地进行图层编辑,可以自由创建、复制、删除图层,有利于更好地组织绘图作品。此外,软件还支持多种图像格式的导入和导出,如JPEG、PNG、BMP等,方便用户的文件互通。另外,drawtools2005还支持文本编辑功能,可以在绘图中添加文字,使作品更加有趣。 除了基本的绘图功能外,drawtools2005还提供了一些高级功能,如滤镜效果、图形变换等,可以让用户对图像进行进一步处理和修饰。而且,软件界面简洁明了,操作简单易学,即使是初学者也可以轻松上手。 总结来说,drawtools2005是一款功能强大、操作简便的绘图软件。不论是想要绘制简单的线条还是创造精美的图像,都可以通过该软件轻松实现。无论是专业绘图师还是普通用户,drawtools2005都能满足绘图需求,是一款值得推荐的绘图工具软件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值