zoukankan      html  css  js  c++  java
  • Alg-4:算法可视化tiny库的实现

    好吧,准备好好实践一下《算法》这本书的内容的,有点讨厌的是这本书是以Java作为示例语言的(好吧,我承认我有语言偏见,Java就是臭)。其中有一个Std库,其中涉及到简化输入输出、随机数生成、算法可视化的内容。里面的大部分功能在Python中早就是标配了~~~。唯独有一个用于算法可视化的StdDraw类Python没有build-in包。扩展包到时有很多(如Matplotlib),但是只是要和书本同步那几个小功能,没必要杀鸡用牛刀。就想着用Python自带的Tk实现以下。

    主要目标如下:

    • 完成和书本中的StdDraw一样的API接口
    • 要有个简单的GUI窗口用于图像的显示和保存

    技术选择:

    由于GUI操作很少,所以采用python自带的Tk GUI库,结合图像处理主要下面三种组合

    1.纯Tk canvas (依赖少,Python发行版完全自带)
    2.Tk + PIL (需小型扩展PIL/pillow)
    3.Tk + maplotlib (需要一个大的扩展包)

    现在采用的是第二种方案,原因是方便处理图片格式。但是这种方案目前有些问题:

    • Tk本身的颜色、字体设置和PIL是不同的
    • PIL本身是进行图像处理的,不方便进行坐标的转换及坐标范围的缩放
    • Tk和PIL进行交互时有点阻碍,不能很好的进行扩充

    计划下一步先将Tk+PIL这种方案的实现好,接着采用第一种方案完全实现Java的接口(包括其中的动态显示)

    目前的成果

    • GUI界面,logo水印,基础图形绘制以及Text呈现:



    • 无序列表可视化

    • 有序列表可视化

    Github Update

  • 相关阅读:
    关于iOS开发property with 'retain(or strong)' attribute must be of object type
    机器学习之神经网络
    一些知名的开源社区
    机器学习之正则化
    机器学习之逻辑回归(logistic回归)
    机器学习之正规方程法
    机器学习之线性回归、多项式回归
    机器学习之梯度下降法
    64位windows7下安装python,配置numpy和matplotlib库
    mysql分区查询
  • 原文地址:https://www.cnblogs.com/taceywong/p/5876558.html
Copyright © 2011-2022 走看看