大学生 / 程序员 必备技能:
- 画论文示意图 / 流程图
- 画 UML
分享几个最常用的画图的工具
- Window 版的 Visio
- Mac 版的 OmniGraffle
为什么画图是很有必要的呢?
在写论文或者在做笔记的过程中,经常需要示意图帮助我们更好地理解知识点,一个简单明了的示意图可以降低我们的学习及理解成本,有时候语言无法明确表达的知识点,用一张图就可以瞬间领悟,这就是图的魅力。
如何画图比较高级?
根据我个人绘图习惯,说以下几点(仅供参考)
- 描边
一般的填充图是不需要描边的,有了描边会给人一种廉价感
- 圆弧边
有时候加个圆弧会让图形变得不那么突兀。
- 颜色简洁
示意图的目的是让人能够第一眼理解图中想表达的含义,因此要突出重点偶尔使用一些加深的颜色,但是如果花花绿绿的话就显得有点直男审美了,且让人不容易抓住重点。
一般用浅灰色打底,深灰色填充,字体颜色选择白色,重点标注的地方可选择红色或黄色,对比如下:
- 选色
如果你比较专业可直接使用七彩盘选色,七彩盘选色的好处是可以提供更广泛的色域。
如果你是新手,可以通过其他方式,比如画笔选色,画笔选色的好处是颜色定位容易,因为在一般的绘图中使用的颜色是比较单一的。
- 透明度
透明读是有必要的,比如画 CAP 定理时,选择 50% 透明度来表示交集的效果。
你可以用它画什么?
- UML 图
- 下面是我制作的UML,首次制作的时候可能比较麻烦,但是制作好之后,把基本的组件单独抽离出来,等以后用的话就把组件拼接起来即可,不用重新制作,只需要改一下里面的内容即可。
- 其实画图跟编程很类似,这里就是用到了解耦的思想,把基础的组件抽离出来。
- logo
制作各种logo(以下是我制作的一些 logo )
- 猛地一看你可能会觉得花里胡哨,但是仔细一瞧,其实就是一些最简单的图形拼凑而成,并不需要过多的专业技巧。
- 当然,logo 的制作最基本的思想就是能简单表达其含义,并不是随意而为之。
- 你也可以参考一些比较高端的大公司logo,从中寻找灵感。
- 提供一个logo网站 https://simpleicons.org/
- 流程图
- 流程图在很多领域都很有必要,当然 Markdown 支持各种图标的绘制,我个人习惯是如果是一些比较简单的流程图,直接用语法搞定,如果是向下面这种比较复杂的流程图,用画图工具比较实在,因为 Markdown 画这种流程图语法还是有点复杂的,而且还不好看,出来的效果可能并不是你想要的效果。
LRU 流程图
- 示意图
- 像下面这种类似文件夹的图,软件自带的图库中没有这类图形,所以需要自己制作
- 其实也很简单,上面一个梯形加下面的矩形,然后设置一下圆弧边,填充一个浅黄色,就完成了,是不是很简单。其余的复制就行了,也费不了多长时间。
RPC框架示意图
Netty示意图
写在最后
以上就是一些绘图技巧,如果你有兴趣并且稍加练习,甚至会制作出一些出版级别的图。
当然,绘图只是辅助技能,最终还是要回归到代码,不能将过多精力放在如何提升画图的技能上,这样不就本末倒置了嘛。