程序员如何画图?

程序员如何画图?,第1张

经常写完文章, 收到的第一个问题是: 你的图是用啥画的其实自己也经常问别人. 最近强化了一下这方面的知识, 总结一下.

个人将画图的场景分为两种: PPT/文章中使用和系统中使用

可能有人觉得 系统中画图 需求不多, 个人感觉还是有必要的. 经常遇到费劲开发了一个系统, 遇到各路用户问问题. 如果有办法在系统中将执行流程直接生成流程图, 你好我好大家好.

GUI 画图工具有很多可选, 个人比较推荐的是 OmniGraffle , 在线工具推荐 lucidchart . 当然, 我也见过用 KeyNote 画出漂亮的系统图的, 工具不重要, 关键看人(说多了都是泪)

重点说一下程序画图. 最近反省了一下, 画图最多的就是那几个:

没了. 真的没了. 会这几个就可以行走江湖了.

然后, 推荐两个 library: blockdiag 和 graphviz .

blockdiag 是一个神奇的 python libary. 可以通过使用类似 graphviz 的语法, 画出 块图, 序列图, 网络图, 活动图. 还提供了一个 交互式的 shell , 用于调试上述几种图. 例如, shell 中输入:

立即的到如下图:

点击右上角切换成序列图, 输入如下内容:

有可以轻松得到如下序列图:

但是说好的 library 呢? 以 seqdiag 为例,

Graphviz 可谓是一代画图神器, 通过官网的示例图就知道有多强大. blockdiag 也是参考 Graphviz 的实现. 通过类似的语法描述, 生成所需的图形. 对于颜色的选择, 可以参考文档中 Colors 一节, 非常全面.

程序方面, 同名的 graphviz library 可以使用 pip install graphviz 安装, 非常方便. 示例python 程序如下:

既然有了 library 可以画图, 强烈建议在自己的系统中将一些复杂的流程化的事情通过根据当前系统状态画出图的方式展现给用户, 可以避免很多疑惑.

提供一个绘制任意曲线的简单代码。其他功能类似,希望能举一反三。

在窗体中添加一个Picture box,然后输入命令如下:

Dim oldx As Single

Dim oldy As Single

 Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

    If Button = 1 Then       '当鼠标左建按下时发生

        Picture1.Line (oldx, oldy)-(X, Y)

        oldx = X

        oldy = Y

    End If

End Sub

  

Private Sub Picture1_Mousedown(Button As Integer, Shift As Integer, X As Single, Y As Single)

    oldx = X

    oldy = Y

End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11703843.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存