本篇来自 “TikZ 和 PGF 3.0.1 使用手册” 的第二章,是作者提供的简单教程,笛卡尔坐标系是最基本的应用,使读者能对 TikZ 的使用产生初步的印象。源文档讲的故事有点冗长,我把本章的概要记录在这里。 文档结构 TikZ 的文档结构是 \documentclass{article} \usepackage{tikz} \begin{document} \begin{tikzpicture} TikZ 命令写在这里,描述一幅图 \end{tikzpicture} \end{document} 命令形式 Latex 命令形式是 \command [可选参数] {参数列表} 而 TikZ 的语法形式是 \起始动作 (变量) [参数列表] 下一动作 (变量) [参数列表] 下一动作 (变量) [参数列表]… 直线 画直线分为两步:给出起始点,给出到下一个点的路径。例如: \draw (-1, 0) -- (1, 0); 上面第一个坐标 (–1, 0) 是 \draw 命令的参数(可以理解为"落笔点"),而第二个坐标 (1, 0) 是 "--" 命令的参数。不要把( –1, 0) -- (1, 0) 统一看做 \draw 命令的参数。上面这个命令可以理解为: (落笔到)(--1, 0) ,(画直线到) (1, 0) 路径可以继续延伸下去,直到分号为止。例如 \draw (-1, 0) -- (1, 0) -- (0, -1) -- (0, 1); 上面这个语句可以理解为: (落笔到)(-1, 0) ,(画直线到) (1, 0),(画直线到)(0, -1),(画直线到) (0, 1) 效果如下: “落笔"后仍然可以"抬笔”,只要中断画线的动作即可,比如: \draw (-1, 0) -- (1, 0) (0, -1) -- (0, 1); 上面这个语句可以理解为: (落笔到)(-1, 0) ,(画直线到) (1, 0),(落笔到)(0, -1) ,(画直线到) (0, 1) 效果如下: 椭圆和圆 从 圆锥曲线的定义 可以知道:圆是椭圆的特殊情况,所以先研究 椭圆 怎么画。 绘制椭圆,需要给出中心位置,作为 \draw 的参数,然后给出半轴长,放置于参数列表中,以方括号括起来: \draw (0, 0) ellipse [x radius=2cm, y radius=1cm]; 效果如下: 画圆时的 radius 参数同时设定 x radius 和 y radius: \draw (0, 0) circle [radius=1cm]; 矩形 矩形的画法是,由落笔点和对角点确定一个矩形: \draw (0, 0) rectangle (1, 1); 网格线 网格线和矩形类似,也是确定落笔点和对角点,区别是一个画出外围的轮廓线,一个是画出矩形范围内的网格。 \draw (0, 0) grid (3, 3); 默认的间隔宽度为1单位,效果如下: 网格有一个重要的特性: 无论起点和终点的位置在那里,网格线总是通过原点 (0, 0)。 比如下面的例子: \draw [blue, thick](-0.8, -0.8) grid (3.2, 3.2); % 蓝格子 \draw [red, thick](1.2, 1.2) grid (5.2, 5.2); % 红格子 \draw [fill=black](0, 0) [radius=0.1cm] circle; % 原点 效果如下: 这就好像是先有网格线,再用矩形做了剪切(clip) 画图样式 从 网格线 一节就能看出, \draw 命令的样式参数可以简写,比如 \draw [color = red] (0,0) [radius=1cm] circle; 可以简写为 \draw [red] (0,0) circle (1cm); 线宽的选项有以下几种: very thin thin thick very thick ultra thick ultra thin 的选项,对于分辨率不高的普通显示器,可能不能正常显示。而且没有 normal 这一选择,如果想表达 thin 和 thick 之间的中间值,要用 semithick. 圆弧 圆弧的命令是 arc,属性全部在方括号内,作用是从 \draw 的落笔点开始,画出一段椭圆弧,或者圆弧。比如 \draw (0,0) arc [start angle=-30, end angle=30, x radius=1cm, y radius=3cm]; \draw (0,0) arc [start angle=-30, end angle=30, x radius=3cm, y radius=1cm]; \draw (0,0) arc [start angle=-30, end angle=30, x radius=2cm, y radius=2cm]; 效果如下: 和 圆 一样,可以用 radius 同时指定 x radius 和 y radius : \draw (0,0) arc [start angle=-30, end angle=30, radius=2cm]; \draw (0,0) arc [start angle=-40, end angle=40, radius=3cm]; \draw (0,0) arc [start angle=-50, end angle=50, radius=4cm]; 效果如下: 裁剪 如果只想突出显示图形的局部,可以用某种路径(比如圆、矩形)作为剪切工具,命令是 \clip , 和 \draw 类似,唯一不同的是画完曲线后,将曲线外的部分裁掉。比如下面的语句: \clip (0, 0) circle (1.9); \draw (-1.5, -1.5) rectangle (1.5, 1.5); 效果如下: \clip 命令还有一个可选参数 [draw] ,启用后,将同时画出裁剪的边界,比如 \clip[draw] (0, 0) circle (1.9); \draw (-1.5, -1.5) rectangle (1.5, 1.5);