当前位置:   article > 正文

TikZ

tikz

原  文:TikZ package
译  者:Xovee
翻译时间:2020年11月09日

TikZ 包

TikZ 也许是 LaTeX 中最复杂也是最强大的绘制图形的工具。在本篇文章中,我们介绍一些简单的、基本的功能:线条、点、曲线、圆圈、长方形等。

介绍

我们可以通过定义一些关键的参数来绘制图形,例如:

\begin{tikzpicture}
\draw[gray, thick] (-1,2) -- (2,-4);
\draw[gray, thick] (-1,-1) -- (2,2);
\filldraw[black] (0,0) circle (2pt) node[anchor=west] {Intersection point};

\end{tikzpicture}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

首先,你需要引入tikz包,然后声明tikzpicture环境。

在这个例子里,我们绘制了两条线和一个点。命令\draw[gray,thick]绘制了一条线,它的颜色是灰色(gray),线条较粗(thick)。线的起点和终点由(-1, 2)(2, -4)定义,中间用--分割。

点(point)实际上是一个填充黑色的圆圈(使用命令\filldraw[black])。在这个例子中,它的圆心是(0, 0),半径是(2pt)。点旁边是一个节点(node),实际上是一个包含文字的方框。点位于框的西边(west)。

注意:每一个命令之后都有一个分号(;)。

注意:tikzfigure环境可以放置在figure环境或者类似的环境里。更多信息请参考这篇文章

基本的元素:点、线、路径

本节将会解释如何创建基础的图形元素。这些元素可以组合起来,从而绘制更复杂精细的图形。

\begin{tikzpicture}

\draw (-2,0) -- (2,0);
\filldraw [gray] (0,0) circle (2pt);
\draw (-2,-2) .. controls (0,0) .. (2,-2);
\draw (-2,2) .. controls (-1,0) and (1,0) .. (2,2);

\end{tikzpicture}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述
这个例子中有三个基础的命令:

\draw (-2,0) – (2,0);
这个命令定义了一个线,起点和终点分别是(-2, 0)(2, 0)

\filldraw [gray] (0,0) circle (2pt);
这个命令创建了一个圆心在(0, 0),半径为(2pt)的非常小的灰色的点。命令\filldraw被用来绘制填充颜色的图形。更多例子请见下一节。

\draw (-2,2) … controls (-1,0) and (1,0) … (2,2);
绘制一个贝塞尔曲线。这个命令里有四个点:(-2, 2)(2, 2)是它的起始点和终点,(-1, 0(1, 0)是控制点(可以相同,定义了曲线到底有多“曲”)。你可以把这两个点想象为“吸引点”。

基础的几何图形:圆、椭圆、多边形

几何图形可以从简单的图形组合而成,或者使用特殊的命令。我们首先介绍圆、椭圆和弧形。

\begin{tikzpicture}
\filldraw[color=red!60, fill=red!5, very thick](-1,0) circle (1.5);
\fill[blue!50] (2.5,0) ellipse (1.5 and 0.5);
\draw[ultra thick, ->] (6.5,0) arc (0:220:1);
\end{tikzpicture}
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

\filldraw[color=red!60, fill=red!5, very thick](-1,0) circle (1.5);
我们对这个命令已经很熟悉了,它可以创建一个点。在这里,我们传递了更多的参数:

color=red!60
圆的边的颜色被设置为百分之六十的红。这篇文章介绍了如何在 LaTeX 中创建你自己定义的颜色。

fill=red!5
圆的填充颜色是更淡的红色。

very thick
圆的边的厚度。也可以用在\fill命令中。

\fill[blue!50] (2.5,0) ellipse (1.5 and 0.5);
创建一个椭圆,圆心是(2.5, 0),以及两个半径:水平和垂直(1.5和0.5)。注意这里我们使用了\fill命令,而不是drawfilldraw,这是因为这里我们不需要去控制外部和内部的颜色。

\draw[ultra thick, ->] (6.5,0) arc (0:220:1);
这个命令会创建一个弧形(arc),参数->定义了这个弧会有一个尾部箭头。创建弧形你不仅需要提供起始点,还需要提供三个数字:起始角度、终点角度、半径。格式为(0:220:1)

除了曲线图形,我们也可以创建直线图形,语法都是差不多的:

\begin{tikzpicture}

\draw[blue, very thick] (0,0) rectangle (3,2);
\draw[orange, ultra thick] (4,0) -- (6,0) -- (5.7,2) -- cycle;

\end{tikzpicture}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

\draw[blue, very thick] (0,0) rectangle (3,2);
长方形是由特殊的命令\rectangle创建的。你需要提供两个参数点:一个是起点,一个是对角的点。

\draw[orange, ultra thick] (4,0) -- (6,0) -- (5.7,2) -- cycle;
我们可以通过绘制多个直线来创建多边形,例如:一个线从(4, 0)(6, 0),一个线从(6, 0)(5.7, 2)。我们无需指定最后一条线来连接起点和终点,只需要提供cycle参数。

Diagrams

节点可能是Tikz中最普遍的元素了。在之前的例子里,我们已经使用过一次节点(node)了。在下面的例子中,我们使用节点来创建diagram。

\begin{tikzpicture}[
roundnode/.style={circle, draw=green!60, fill=green!5, very thick, minimum size=7mm},
squarednode/.style={rectangle, draw=red!60, fill=red!5, very thick, minimum size=5mm},
]
%Nodes
\node[squarednode]      (maintopic)                              {2};
\node[roundnode]        (uppercircle)       [above=of maintopic] {1};
\node[squarednode]      (rightsquare)       [right=of maintopic] {3};
\node[roundnode]        (lowercircle)       [below=of maintopic] {4};

%Lines
\draw[->] (uppercircle.south) -- (maintopic.north);
\draw[->] (maintopic.east) -- (rightsquare.west);
\draw[->] (rightsquare.south) .. controls +(down:7mm) and +(right:7mm) .. (lowercircle.east);
\end{tikzpicture}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述

这里有三个基础的命令:节点定义、节点声明、连接节点的线。

roundnode/.style={circle, draw=green!60, fill=green!5, very thick, minimum size=7mm}
tikzpicture环境传递一个参数,定义一种节点(roundnode),这个节点将会是一个圆圈,边的颜色是green!60,填充色是green!5,边非常粗(very thick),最小的大小是7mm。下面的命令定义了第二种节点,一个矩形的节点(squarednode)。

\node[squarednode] (maintopic) {2};
这个命令会创建一个squarenode。这个节点拥有一个id(maintopic),节点内会显示数字2,如果大括号中的内容为空,则不显示任何内容。

[above=of maintopic]
注意,图形中除了第一个节点之外,都有一个额外的参数,这个参数定义了这个节点相对于其他节点的位置。例如[above=of maintopic]代表这个节点应该位于一个名叫maintopic的节点的上方。你首先需要在文档的序言部分导入这个命令:\usetikzlibrary{positioning}。如果你不导入这个命令,你可以使用above of=maintopic,不过使用positioning语法会更方便和强大,例如,你可以使用above=3cm of maintopic来控制该节点与maintopic节点之间的距离。

\draw[->] (uppercircle.south) -- (maintopic.north);
这个命令会绘制一个带箭头的直线。与之前的语法不同,我们不再指定精确的位置,而是指定起始的点和终止的点(这也是为什么我们定义节点的id的原因)。

参考指南

tikz包中可选的颜色和粗细参数:

参数示例图
colorwhite, black, red, green, blue, cyan, magenta, yellow在这里插入图片描述
thicknessultra think, very thin, thin, thick, very thick, ultra thick在这里插入图片描述

在你的LaTeX中,可能包含更多可用的颜色。参见这篇文章

延伸阅读

更多信息请见:

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

闽ICP备14008679号