Latex-TiKZ绘制数学平面几何图教程

本文详细介绍如何使用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像素,下面通过示例来演示我本机电脑上的 1cm1pt 的关系。

演示之前,再来介绍下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 (起始度 : 终止度 : 半径);
    1. option     同矩形解释
    2. 圆心坐标     画弧时也需要指定,该弧所在圆心坐标
    3. 起始度     弧也会分起始所在度数 和 终止所在度数
    4. 终止度     弧也会分起始所在度数 和 终止所在度数
    5. 半径     弧所在圆的半径大小

椭圆弧

  • \draw [option] (圆心坐标) arc (起始度 : 终止度 : 长轴 and 短轴);
    1. option     同矩形解释
    2. 圆心坐标     画弧时也需要指定,该弧所椭圆的圆心坐标
    3. 起始度     弧也会分起始所在度数 和 终止所在度数
    4. 终止度     弧也会分起始所在度数 和 终止所在度数
    5. 长轴     弧所在椭圆的长轴和短轴大小
    6. 短轴     弧所在椭圆的长轴和短轴大小

注意:上述起始度、终止度 和半径之间是冒号 “:”分割,椭圆弧也是一样。

下面做个示例,演示圆、椭圆、弧的效果
在这里插入图片描述

曲线

说到曲线,就不得不提 贝塞尔曲线,由起始点、终止点(也称锚点)、控制点组成。通过调整控制点,贝塞尔曲线的形状会发生变化。对贝塞尔曲线感兴趣的,可查看《贝塞尔曲线的数学原理》。

tikz绘制曲线时把直线的短线 - - 换成点 . . ,就得到贝塞尔曲线,它需要至少一个控制点,最多2个控制点,如果要画复杂的曲线时,可以使用多段曲线实现。

而抛物线用parabola 操作,bend 操作可以指明顶点。

语法如下:

贝塞尔曲线

  • \draw [option] (起点坐标) . . controls (控制点1) and (控制点2)… (终点坐标) ;
  1. option     同矩形解释
  2. 起点坐标     既然要画曲线,就会有起点和终点坐标
  3. 控制点     tikz绘制一段贝塞尔曲线,需要至少1个,最多2个控制点

抛物线

  • \draw [option] (起点坐标) parabola bend (顶点) (终点坐标) ;
  1. option     同矩形解释
  2. 起点坐标     抛物线也需要起点和终点坐标
  3. 顶点     抛物线也需要顶点坐标

示例及效果如下
在这里插入图片描述
示例中使用了符合“++”,这个属于图形平移,会在后面介绍。

坐标轴

其实坐标轴的绘制是直线绘制的综合,因为坐标轴是有多个直线段组成的,直接上示例:
在这里插入图片描述
这里演示的是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
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值