当前位置: 首页 > news >正文

程序员画图工具?那必然是你了!!【送源码】

作为一个程序员,画图是必不可少的技巧。当然此画图不是搞艺术,而是画各种架构图、流程图、泳道图以及各种示意图。

平时我不论是记笔记、写技术文章,还是工作中写文档,都需要配上各种各样的示意图。不管是帮助自己更好的掌握知识,还是分享出去让别人更好的理解,配图都是非常重要的,所谓一图胜千言就是这个道理,大家都喜欢图文并茂的内容,有时候甚至一张图就够了,根本不需要过多的文字解释。

这些图都是用 Mac 自带的 Keynote 画的,当然今天要说的不是 Keynote,因为画了好多图后,我发现用 Keynote 画图虽然可以很好看,但是很累,而且图画的好不好看,完全靠自己的审美水平。我画图主打一个花里花哨,一张图可能用上好几个颜色,主打一个以多取胜,唬住一部分人不在话下。

Keynote 更适合做那些科普类、知识类、推荐类的图文内容,比如小红书,你随便搜一个图文类软件推荐的博主,那种比较简洁的封面图,就很适合用 Keynote 做。

图片

今天要介绍的这个工具是 Excalidraw,自从发现这个工具后,Keynote、ProcessOn 我基本上就不用了。

Excalidraw

以下是用 Excalidraw 画的各种类型的图,Excalidraw 主要的就是一个手绘风格,出来的效果很像用笔画出来的。当然,如果是对外比较正式的图,也可以调整成比较严肃的风格。

我感觉效果还是不错的。不喜勿喷!

业务架构方案

图片

泳道图

图片

示意图

图片

简易流程图

图片

操作界面

如果你用过其他的画图工具,那对它的界面自然也不会感到陌生,都差不多,只是效果上有比较大的差别。

以下是它的一个主要操作界面。

  • 可以通过上方的菜单快速的拖出矩形、菱形、原型、箭头、线条等等。

  • 选中一个图形元素后,左侧可以配置这个元素的线条风格,这里就包括那种比较正式的风格和手绘风,以及直角和圆角。

  • 可控制元素的内部填充色、内部填充风格(实色填充、网格填充以及无填充)、边框颜色。

图片

字体问题

Excalidraw 的官网地址是  https://excalidraw.com/ 。但是 Excalidraw 对于国内的用户来说有一个比较严重的问题,那就是它对中文的支持不是很好,默认字体很多人不是很满意。

下面是默认的中文字体显示风格,其实还说的过去。

图片

但是换了字体后,看上去更舒服一点。(注意,此处与个人审美密切相关,要不然就不会有那么多字体了)

图片

我个人而言,还是喜欢下面的字体,这个字体是开源的霞鹜文楷字体。正好Excalidraw也是开源的,所以,我专门部署了一套带有霞鹜文楷字体的网站 https://excalidraw.moonkite.cn/ ,有需要的可以直接拿去用,不用谢!

在左侧字体设置里,第一个就是这个霞鹜文楷字体,选中这个就可以了。

图片

—— EOF ——

福利:

扫码回复【图书】可免费领取图书管理系统源码

图片

相关文章:

  • 在mybatis 中如何防止 IN里面的参数过多?
  • Vite使用unplugin-auto-import实现vue3中的自动导入
  • jingxiang制作
  • springcloud第4季 分布式事务seata作用服务搭建
  • vite配置之获取.env.[mode]下的数据
  • linux 安装sftp及使用sftp上传和下载
  • NVIDIA发布Nemotron-4 340B 用于生成高质量的合成数据
  • GitHub项目里的api
  • Excel小技巧| 批量多列多行转为一列
  • 系统架构设计师【论文-2017年 试题2】: 论软件架构风格(包括写作要点和经典范文)
  • 外观缺陷检测原理
  • vue3+vite+ts 使用webrtc-streamer播放海康rtsp监控视频
  • C++面经
  • C# list 成员对象是int型存在堆区还是栈区
  • 机器学习——集成学习和梯度提升决策树
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 10个最佳ES6特性 ES7与ES8的特性
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • ES6语法详解(一)
  • flutter的key在widget list的作用以及必要性
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • node 版本过低
  • Solarized Scheme
  • spark本地环境的搭建到运行第一个spark程序
  • Vue实战(四)登录/注册页的实现
  • 闭包--闭包作用之保存(一)
  • 分享一份非常强势的Android面试题
  • 构建工具 - 收藏集 - 掘金
  • 数据科学 第 3 章 11 字符串处理
  • 思考 CSS 架构
  • 白色的风信子
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​学习一下,什么是预包装食品?​
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #define 用法
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • $().each和$.each的区别
  • %check_box% in rails :coditions={:has_many , :through}
  • (1)(1.9) MSP (version 4.2)
  • (1)常见O(n^2)排序算法解析
  • (6)设计一个TimeMap
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (安卓)跳转应用市场APP详情页的方式
  • (二)hibernate配置管理
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .apk 成为历史!
  • .NET : 在VS2008中计算代码度量值
  • .net refrector
  • .Net6使用WebSocket与前端进行通信
  • .net访问oracle数据库性能问题
  • .w文件怎么转成html文件,使用pandoc进行Word与Markdown文件转化
  • /dev/sda2 is mounted; will not make a filesystem here!
  • :not(:first-child)和:not(:last-child)的用法