Latex-TiKZ绘制数学平面几何图教程
本文专注于Latex 文档中的 数学图形 绘制 ,更准确一点的说法是 平面几何图形 绘制。
Latex常用语法请参考我的另一篇文章《中文版Latex常用语法大全教程》
Latex上画 平面几何图形 的包是 \usepackage{tikz} ,本文所有的示例都是基于该宏包演示的,演示用的Latex 环境配置,请参考我的另一篇文章《ubuntu20.04下vim+vimtex编写latex的利器》。
要是想绘制三维图,请参考我的另外一篇文章《Latex-pgfplots绘制3维曲线图》
这里再啰嗦几句,数学上的平面几何图形主要有以下 4 大类:
- 点
- 线
- 面
- 立体
这几大类,在本文都会介绍,我会实时更新,请广大道友,持续关注……
你好china
这里的“hello world”,我准备以画点并标注上标识来演示。

我们先来分析下这个“hello world”:
-
\usepackage{tikz}
使用tikz画图时,先来导入宏包 -
\coordinate(china) at (0,0);
有人说这是画点语法,而我却认为,这是一个标记点的语法,或者说是给“点”定义一个变量,下面根据变量名来引用点。 -
\fill (china) circle (.1);
这是一个填充的语法,语义是填充一个点,圆形,半径是0.1cm(这里有没有感觉到奇怪?)。
我认为这才是画点的语句,在点“china”坐标处画点,画的是一个圆点。 -
\node at (china) [right]{你好china};
这个语句是在点“china”坐标的 右边 写上一个标识,来说明这个点,可以是“A”、“B”等其他的,或者是你想标注的其他一个字符。
通过这个示例,大家是不是清晰了,更有趣的还在后面,请大家尽情期待吧……
基本图形
辅助网格
在介绍所有图形的绘制前,我认为应该先介绍下辅助网格的绘制,这个在以后的图形绘制中帮助很大,也便于各位同学在绘制时的理解。
绘制辅助网格的语法:
\draw[help lines [,color=颜色值!该色百分比[,step=网格大小]]] (左下角坐标坐标) grid (右上角坐标) ;
- 颜色值 辅助网格的颜色值
- 该色百分比 表示辅助网格颜色值的深浅明暗,如:!50 表示该色的50%
- 网格大小 表示网格以多大尺寸绘制,不写的话,会默认以1cm大小绘制,如:10pt,指的是以10像素大小绘制,也可以使用实数,如1.5cm,不过不能写成1.5pt,因为像素已经是最小单位,只能用整数。
- 左下角坐标 辅助网格是个矩形(正方形),需要先填写左下角坐标
- 右上角坐标 与“左下角坐标坐标”同理。
比如“hello world”中的语句 “ \fill (china) circle (.1);”,其中 “.1” 指的就是0.1cm,如果把 “.1” 写成 “1pt” ,表示的就是1像素,下面通过示例来演示我本机电脑上的 1cm 跟 1pt 的关系。
演示之前,再来介绍下node的语法,也就是做标记,标注:
\node at (坐标点) [方位] {标注内容};
- 坐标点 就是准备对哪个点做标注,就填写哪个点的坐标
- 方位 标注的文字要放在标注点的哪个方向(上下左右),above、below、left、right
- 标注内容 就是要标注什么内容?可以是中文字符,也可以是西文字符
示例及效果

从上图可以看出,本机上的“1cm” 稍微小于 “30pt”,我当时核对过本机数据,1cm ≈ 28.5pt,机器不同,或许这个数据也不同,大家不要太纠结。
示例中使用到了 fill 语法,这个就是填充语法,不单独介绍,在后文中用到哪一点就演示哪一点。
点
画点也叫描点,其语法我认为有2种,一种是:
- \fill (0,0) circle (.1); %在坐标(0,0)点,绘制圆点
- \draw[fill] (1,1) circle (.1); %在坐标(1,1)点,绘制圆点
不过,这两种方式在实现上有一点区别:
- fill 在指定点,进行 点 的填充,并需指定填充的形状和范围大小
- draw 在指定点,进行 画图并填充,也需绘制的形状和范围大小,并配置是否填充,带 fill 参数,表示绘图并填充,不带时表示,绘图不填充。
示例及效果如下:

直线
绘制直线的语法:
\draw [option] (起点坐标) - - (终点坐标) ;
- option 是绘制直线的样式,比如,颜色,粗细等,多个option间用逗号 “,” 隔开
- 起点坐标 绘制一个线段就要有起点和终点,指定了2点,才能在2点间画直线
- 终点坐标 与起点坐标同理
- - - 看到公式中的2个短划线了,在实际绘制时,2个短划线之间没有空格,这个写上空格,以便于阅读。
知道了直线的基础语法,我们再来说下,直线有哪些样式,或者说是属性:颜色、粗细、箭头、形状。
其中颜色、粗细、形状,这个几个属性是所有的平面几何图形所共有的属性:
- 颜色 使用 color 关键字指定
- 粗细 可使用关键字 line width 指定线宽值,也可使用粗细关键字“thin、thick”,程度关键字“ultra 、very”相互组合
- 箭头 一般使用 “-” 、 “>” 和 “<” 相互组合成不同的箭头的形状
- 形状 这里的形状指的是:实线、点状虚线、线状虚线、点画线等
下面画了一个表格,来对以上option做个介绍,以供参考。

下面的演示示例,会组合以上option做演示,但有演示不到的情况请大家自己实践。
备注:画线的演示程序都使用thick来指定线宽,太细时,不容易看清,大家可自己实现其他线宽。

绘制多个线段,可是其闭合,其关键字就是 cycle,示例:
- \draw (1,3)–(2,2)–(4,5)–cycle;
矩形
绘制矩形的语法:
\draw [option] (起点坐标) rectangle (终点坐标) ;
- option 是绘制线段的属性,但是没有箭头
- 起点坐标 矩形左下角坐标
- 终点坐标 矩形右上角坐标
示例及效果如下

矩形还有一个 圆角 的属性,“rounded corners”,示例:
- \draw[rounded corners] (0,0) rectangle (4,2);
圆
语法:
\draw [option] (圆点坐标) circle (半径);
- option 同矩形解释
- 圆点坐标 画圆时需要先指定圆心坐标
- 半径 再指定圆半径
椭圆
语法:
\draw [option] (圆点坐标) ellipse (长轴 and 短轴);
- option 同矩形解释
- 圆点坐标 画椭圆时需要先指定圆心坐标
- 长轴 画椭圆时需要指定长轴大小
- 短轴 画椭圆时需要指定短轴大小
弧
弧分为 圆弧 和 椭圆弧,语法:
圆弧
- \draw [option] (圆心坐标) arc (起始度 : 终止度 : 半径);
- option 同矩形解释
- 圆心坐标 画弧时也需要指定,该弧所在圆心坐标
- 起始度 弧也会分起始所在度数 和 终止所在度数
- 终止度 弧也会分起始所在度数 和 终止所在度数
- 半径 弧所在圆的半径大小
椭圆弧
- \draw [option] (圆心坐标) arc (起始度 : 终止度 : 长轴 and 短轴);
- option 同矩形解释
- 圆心坐标 画弧时也需要指定,该弧所椭圆的圆心坐标
- 起始度 弧也会分起始所在度数 和 终止所在度数
- 终止度 弧也会分起始所在度数 和 终止所在度数
- 长轴 弧所在椭圆的长轴和短轴大小
- 短轴 弧所在椭圆的长轴和短轴大小
注意:上述起始度、终止度 和半径之间是冒号 “:”分割,椭圆弧也是一样。
下面做个示例,演示圆、椭圆、弧的效果

曲线
说到曲线,就不得不提 贝塞尔曲线,由起始点、终止点(也称锚点)、控制点组成。通过调整控制点,贝塞尔曲线的形状会发生变化。对贝塞尔曲线感兴趣的,可查看《贝塞尔曲线的数学原理》。
tikz绘制曲线时把直线的短线 - - 换成点 . . ,就得到贝塞尔曲线,它需要至少一个控制点,最多2个控制点,如果要画复杂的曲线时,可以使用多段曲线实现。
而抛物线用parabola 操作,bend 操作可以指明顶点。
语法如下:
贝塞尔曲线
- \draw [option] (起点坐标) . . controls (控制点1) and (控制点2)… (终点坐标) ;
- option 同矩形解释
- 起点坐标 既然要画曲线,就会有起点和终点坐标
- 控制点 tikz绘制一段贝塞尔曲线,需要至少1个,最多2个控制点
抛物线
- \draw [option] (起点坐标) parabola bend (顶点) (终点坐标) ;
- option 同矩形解释
- 起点坐标 抛物线也需要起点和终点坐标
- 顶点 抛物线也需要顶点坐标
示例及效果如下

示例中使用了符合“++”,这个属于图形平移,会在后面介绍。
坐标轴
其实坐标轴的绘制是直线绘制的综合,因为坐标轴是有多个直线段组成的,直接上示例:

这里演示的是2维坐标轴,当然也可以绘制3维坐标轴,里面使用了一个命令 foreach,这个以前没有说过,用于引用循环变量及其文本格式。语法:
\foreach var in {
list}
* 使用变量var从list中遍历
当然也可以同时遍历2个变量,格式
\foreach a/b in {
list}
* 这里把a/b作为一个整体,用“/”分割,所以list的元素也必须是形为“a/b”,用“/”分割。
图形控制
这里主要说下点的偏移、缩放(scale)、平移(shift)、倾斜(slant) 、旋转(rotate)、定点旋转(rotate around) 等。
先来补充一个知识点,极坐标,在上面的图形绘制中,除了可以使用平面坐标,也可以使用极坐标。tikz中的点也支持极座标表示,(30:1cm),第一个参数是极座标里面的角度,第二个参数是半径。
我们一般画直线时,使用的时 2维平面坐标,当然也可以填写 3维坐标。
- \draw[color=red] (0,2,0) – (0,0.5,0); %大家可以自行实现该效果
点的偏移
先来看下如下程序段
7 \begin{
tikzpicture}[scale=2]
8 \draw[step=1,color=gray!40] (-2,-2) grid (2,2);
9 \draw[latex-latex, red] (0,-2) -- ++(-1,1) -- ++(-1,-1);
10 \draw[dashed, blue] (0,1) -- +(-1,1) -- +(-2,0

本文详细介绍如何使用Latex的TiKZ宏包绘制数学平面几何图形,包括点、线、面、立体图形的绘制方法,以及图形控制、函数图形、两直线或曲线的交点示意图等内容。
最低0.47元/天 解锁文章
1100





