当前位置:   article > 正文

Tikz作图教程:动手 VS 动脑? 97行代码 VS 6行代码?_tikz 难学吗

tikz 难学吗

在学习Tikz的过程中,当我们对基本代码有一定熟悉之后,作图思路就是更重要的事情了。本文借一个例子谈谈作图思路的问题。

昨天在网上看到这样一幅图形:

看上去挺复杂的一个图,心里琢磨如果用Tikz来画,需要几行代码呢?

我看到原文附的代码共有97行,而且里面的点的坐标看上去是由计算机生成的。也就是说,绘图者先在第三方软件用鼠标画出这幅图形,然后再转成Tikz代码,然后插入到TeX文档中。

如果有这样的软件,对广大LaTeXer们来说岂不是一件大好事吗?因为这样及兼顾了Tikz的优秀出图品质,又能让绘图者节省脑力,免受复杂代码的折磨了!

事实上,笔者这种折衷的方法只能偶尔尝试一下,不宜用它代替对Tikz的学习和钻研。有诸多理由:一是用鼠标作图很费手,而且作图难以精确。笔者就是一个手残党,一个箭头用鼠标拉三四次都不能放到心里想要的位置。二是费时,三是费事折腾,四是代码太多,五是用多了会产生依赖心理,也就不想学习Tikz了……

当然,学习Tikz也需要花很多时间,不过这是一件虽然烧脑但是却有趣的事情。只要每天积累一点点,进步一点点,时间久了,就能水到渠成了!

言归正传,下面我们说说这个图的绘图思路。

使用Tikz作图与写一篇作文很相似,拿到一个图形以后,先要谋篇布局,打好腹稿。第一,节点的位置如何安排?第二,使用什么作图工具和技巧?

以文首的图形为例,这个图形虽然节点多(17个),箭头多(60个),但是,节点位置分布有规律,箭头也有规律(左边的每个节点都与相邻右侧的点相连)。

所以,作图的思路是:先安排节点的位置,上下两个节点的距离为2,水平相邻的两个节点的距离为4。节点按照四列分别用\node工具+\foreach循环语句批量作出,连线用\draw[->]()--();箭头工具+\foreach循环语句批量作出。

作图思路确定以后,就要具体安排节点的位置了。我们要考虑,坐标原点放在哪里好呢?

一种是放在图形的中心位置,让节点均匀的分布在原点周围,如下图:

在这里插入图片描述

另一种是放在图形左下角位置,如下图:

在这里插入图片描述

读者可以思考一下,这两种安排哪种更好?

节点位置安排大概花两三分钟就够了。安排好节点以后,就可以开始作图了。

作图有两种方法:一种是逐个给出17节点的坐标,然后逐条画出60个箭头。这样做想法比较简单,但操作比较繁琐乏味,没有挑战性,且耗时,易出错。

第二种方法是用循环语句\foreach批量设置节点,批量连线。这种方法只需要6行代码就能实现,熟悉代码的话只要10分钟就够了。

最后的图形如下:

在这里插入图片描述

关于如何使用循环语句\foreach作图,可以查看往期推文Tikz教程 | 批量操作 foreach 语句,观看视频学习。

如果有朋友对本文例子的代码有兴趣,那么可以点击下方链接获取:

Tikz作图教程:动手 VS 动脑? 97行代码 VS 6行代码?

今天的介绍就到这里,喜欢的话欢迎点赞、收藏、分享,谢谢啦!
【LaTeX微信交流加群:】

如果你希望交流LaTeX使用或者TikZ作图或者Beamer制作幻灯片方面的问题,请先添加作者微信:niltxz,然后加入作者的LaTeX+TikZ+Beamer 交流微信群。

更多LaTeX资料欢迎关注公众号 大哉数学之为用

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/238069
推荐阅读
相关标签
  

闽ICP备14008679号