作者: 乔克斯
查看: 19972|回复: 42
打印 上一主题 下一主题

[源码] 【增强版画图程序】纯C#实现的mspaint增强版画图程序

[复制链接]
跳转到指定楼层
#
乔克斯 发表于 2015-8-21 11:44:16 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
查看: 19972|回复: 42
说明:
  • 这是用C#/Winform/GDI+实现的类似mspaint的画图程序。
  • 目前实现了直线、折线、矩形、椭圆、指示箭头等规则形状。
  • 这些形状被绘制后,不会像mspaint那样,就动不了了,而是可以再次被编辑,包括旋转、缩放等。

效果截图:
1.主界面一。

2.主界面二。


详细介绍:
  • 对于没做过这方面程序的人,最好奇的可能就是,你用Graphics类画出一个东西后,怎么样才能重新选中、移动、编辑它?
  • 以画一个矩形为例来说明,你如果用Graphics类在一个控件(Control)上画了个矩形,并且把矩形的起点坐标、大小等数据记住,那么用户在控件上单击的时候,你就能判断出用户是否在矩形上单击了,如果是,就表示矩形被选中了,如果用户同时还移动了鼠标,那么就可以根据移动的距离重新计算矩形的起点坐标,然后重新画这个矩形。
  • 这就是Extended Paint用的基本方法。在内部记住各种形状(线段、矩形、椭圆等)的起点坐标、大小、颜色等等信息,在用户移动、旋转形状后,要随即更新这些信息,并重新绘制形状。
  • 其它的难点还有不少,比如用户将图像放大,并在放大的视图上绘制新的形状,这时候的处理跟未放大时有什么不同?再如撤销(后退一步)功能,怎么样放弃最后一次操作,返回之前的状态?放大和撤销这两个功能现在还为实现,但是大致思路已经有了。
  • 做这个程序有两个目的,一是把功能写全后,用我之前写的一个控件库来做其UI,然后这个画图程序作为控件库的应用例子。二是做一个实用的截图、画图程序,尽量仿mspaint来做,但要在个方面有所增强。当然了目前Extended Paint还很简单,没有截图功能、不能粘贴位图、不能编辑文字等等,后面会继续完善。

案例源码下载:


原文来自:ping3108
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏10 转播转播
回复 论坛版权

使用道具 举报

42#
dianke09 发表于 2023-4-13 13:27:10 | 只看该作者
学习学习,强大,赞一个
41#
wz0311 发表于 2022-4-12 10:16:52 | 只看该作者
有没有贝塞尔曲线呢?
40#
jackiewu3 发表于 2021-6-6 00:46:44 | 只看该作者
谢谢分享!!!!!
回复

使用道具 举报

39#
534706358 发表于 2018-8-8 01:02:01 | 只看该作者
橡皮擦功能怎么实现呢?求指导 还有一个文字编辑也挺在乎的
38#
wanghenan 发表于 2018-2-5 10:22:34 | 只看该作者
正需要找个画图的实例学习
37#
xuss11 发表于 2017-12-13 10:32:04 | 只看该作者
很强大的画图
36#
nobodyelse426 发表于 2017-10-23 15:59:41 | 只看该作者
不得不说,厉害
35#
a445945596 发表于 2017-10-6 14:27:05 | 只看该作者
下载下来学习~~~~~~!!!!!!!
34#
yjl114113 发表于 2016-9-13 14:56:12 | 只看该作者
好东西,赞一个
33#
venus5712 发表于 2016-8-29 17:46:31 | 只看该作者
谢谢分享,很实用!可以为动态画图做基础。
您需要登录后才可以回帖 登录 | 加入CSkin博客

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2024-5-25 21:42, Processed in 0.599899 second(s), 33 queries , Gzip On.

快速回复 返回顶部 返回列表