wx供重浩:创享日记
对话框发送:python画板
免费获取完整源码源文件+说明文档+可执行文件等


在PyCharm中运行《超级画板》即可进入如图1所示的系统主界面。在该界面中,通过左侧的工具栏可以选择所要进行的操作。


具体的操作步骤如下:
超级画板的主要功能都集中在一个窗口上实现,在这个窗口中,默认选择的是画笔,用户在设置画笔颜色和尺寸时,可以在窗口左侧的矩形框中显示预览效果,选择完成后,即可在右侧画板中绘制图形;而如果选择橡皮,则可以擦除已经绘制的图形,另外,还可以按键盘上的Esc键盘,清空右侧的画板,效果如图2所示。

部分源码如下,其余完整详见下载。

class Brush:"""画笔类"""def __init__(self, screen):self.screen = screen  # 屏幕对象self.color = (0, 0, 0)  # 颜色self.size = 1  # 大小self.drawing = False  # 是否绘画self.last_pos = None  # 鼠标滑过最后的位置self.space = 1self.brush = pygame.image.load("img/pen.png").convert_alpha()  # 画笔图片self.brush_now = self.brush.subsurface((0, 0), (1, 1))  # 初始化画笔对象# 开始绘画def start_draw(self, pos):self.drawing = Trueself.last_pos = pos # 记录鼠标最后位置# 结束绘画def end_draw(self):self.drawing = False# 获取当前使用画笔def get_current_brush(self):return self.brush_now # 获取当前使用的画笔对象def set_size(self, size):  # 设置画笔大小if size < 0.5: # 判断画笔尺寸小于0.5size = 0.5 # 设置画笔最小尺寸为0.5elif size > 32: # 判断画笔尺寸大于32size = 32 # 设置画笔最大尺寸为32self.size = size # 设置画笔尺寸# 生成画笔对象self.brush_now = self.brush.subsurface((0, 0), (size * 2, size * 2))# 获取画笔大小def get_size(self):return self.size# 设置画笔颜色def set_color(self, color):self.color = color # 记录选择的颜色for i in range(self.brush.get_width()): # 获取画笔的宽度for j in range(self.brush.get_height()): #获取画笔的高度# 以指定颜色显示画笔self.brush.set_at((i, j), color + (self.brush.get_at((i, j)).a,))# 获取画笔颜色def get_color(self):return self.color# 绘制动作def draw(self, pos):if self.drawing: # 判断是否开始绘画for p in self._get_points(pos):# 在两点之间的每个点上都画上实心点pygame.draw.circle(self.screen, self.color, p, int(self.size))self.last_pos = pos # 记录画笔最后位置# 获取两点之间所有的点位,该函数通过对鼠标坐标前一次记录点与当前记录点之间进行线性插值# 从而获得一系列点的坐标,从而使得绘制出来的画笔痕迹更加平滑自然def _get_points(self, pos):points = [(self.last_pos[0], self.last_pos[1])]len_x = pos[0] - self.last_pos[0]len_y = pos[1] - self.last_pos[1]length = math.sqrt(len_x ** 2 + len_y ** 2)step_x = len_x / lengthstep_y = len_y / lengthfor i in range(int(length)):points.append((points[-1][0] + step_x, points[-1][1] + step_y))# 对 points 中的点坐标进行四舍五入取整points = map(lambda x: (int(0.5 + x[0]), int(0.5 + x[1])), points)return list(set(points)) # 去除坐标相同的点

Windows系统自带的画图板简单灵巧,深得Windows用户的喜爱,其占用资源少、操作简单、功能齐全等特点为用户的小型图形开发工作带来了很多便利。为此,也出现了很多利用VC等可视化开发工具开发的模仿Windows的画图板。本章完全利用C语言开发了一个画图板,该画图板具有画图、调整图形大小与方位、保存与打开文件等基本的画图板功能。

《几何画板》软件是由美国Key Curriculum Press公司制作并出版的优秀教育软件,1996年该公司授权人民教育出版社在中国发行该软件的中文版。正如其名“21世纪动态几何”,它能够动态地展现出几何对象的位置关系、运行变化规律,是数学与物理教师制作课件的工具。

“几何画板”是一个作图和实现动画的辅助教学软件,用户可以根据教学需要编制出相关的图像和动画过程,其特点是操作简单,界面简洁,可以精确度量长度和角度等,而且在演示过程中可以实时调节图像。

python超级画板白板程序源码相关推荐

  1. 在线涂鸦画板小程序源码

    简介: 一款功能简单的在线涂鸦画板小程序源码,可以二次开发 网盘下载地址: http://kekewangLuo.net/VsCTzCLAOVM0 图片:

  2. python五子棋小游戏程序源码

    wx供重浩:创享日记 对话框发送:python五子棋 免费获取完整源码源文件+配置教程文件+可执行文件等 在PyCharm中运行<五子棋(控制台版)>即可进入如图1所示的系统主界面. 具体 ...

  3. 志汇叮咚超级外卖小程序源码6.4.3

    简介: 志汇叮咚超级外卖6.4.3超级餐饮单店版系统源码,含超级跑腿2.0.3,源码前端,官方加密.渠道版,官方更新:优化单店代码. 汇超级外卖餐饮小程序是一款智慧餐饮小程序模块,单店外卖小程序版和多 ...

  4. [附源码]计算机毕业设计Python新能源汽车租赁(程序+源码+LW文档)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...

  5. [附源码]计算机毕业设计Python校园运动会管理系统(程序+源码+LW文档)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...

  6. [附源码]计算机毕业设计Python蛋糕购物商城(程序+源码+LW文档)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...

  7. python写微信小程序源码示例_python实现微信小程序用户登录、模板推送

    python实现微信小程序用户登录.模板推送 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  python实现微信小程序用户登录.模板推送.txt ] (友情提示 ...

  8. [附源码]计算机毕业设计Python高血压分析平台(程序+源码+LW文档)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...

  9. [附源码]计算机毕业设计Python防疫物资捐赠(程序+源码+LW文档)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...

最新文章

  1. let const var 比较说明
  2. Linux shell编程学习实例与参数分析(一)
  3. C++入门之常量与变量
  4. QTextEdit实现图片和文本同行显示
  5. fatal error: GL/glew.h: 没有那个文件或目录
  6. 移动端设备判断,ios,android,判断设备,安卓
  7. oracle用户身份认证,oracle用户身份认证方式
  8. INSTALL_FAILED_INVALID_APK: Split lib_slice_X_apk was defined multiple times异常
  9. 前端-CSS-10-定位
  10. libevent源码分析:bufferevent
  11. 镁光硬盘测试软件,镁光固态硬盘评测
  12. 思科三层交换机配置命令
  13. java treetable_00035-layui+java 树形表格treeTable(异步请求)
  14. iexplore出错
  15. 建设银行上海住房公积金业务网点
  16. 《惢客创业日记》2019.01.30(周三)一月份的工作总结
  17. EDVR和FastDVD
  18. 和平精英为什么进不去显示无法连接服务器,和平精英为什么进不去 进不去解决方法[多图]...
  19. Unity Webgl内嵌网页页面
  20. 模拟量的输入和输出问题及选型

热门文章

  1. 多域名通配符证书你了解多少
  2. Python requests +PrettyTable 查询高铁或者动车票
  3. 西门子S7-300型PLC与西门子S7200smart型PLC的以太网通讯例程
  4. AD转换设计中的基本问题整理
  5. 计算机应用与基础性考实训题答案,《计算机应用基础与实训》 考证练习题09年.pdf...
  6. 再思考如何正确的致富
  7. win7快速连接系统补丁服务器,Win7旗舰版运行优化设置——如何快速安装系统补丁...
  8. 无线充电电力传输过程中主要的损耗:
  9. 猜字小游戏java方法体_java实现猜字小游戏
  10. sku商品选择实现思路