LaTeX tikz初探——基本图形绘制(1)

导师让我们写的GPS作业,点名要用LaTeX里的tikz库,又是需要自学的东西。LaTeX和Tikz 的安装就略过了,网上方法一大堆。照着用户手册,直奔主题。

用户手册地址:
链接:https://pan.baidu.com/s/1cI4MLRkRZ36_u0M60zSsjA
提取码:m5zt

基础直线

首先,试试它给的模板:

\documentclass{article} % say 
\usepackage{tikz} 
\begin{document} 
We are working on 
\begin{tikzpicture} 
\draw (-1.5,0) -- (1.5,0); 
\draw (0,-1.5) -- (0,1.5); 
\end{tikzpicture}. 
\end{document}

编译运行(注意是pdfLatex引擎),是画了一个坐标轴。

在这里插入图片描述
可见\draw (-1.5,0) -- (1.5,0); 表示从点(-1.5,0)画一条直线到(1.5,0),默认单位是1cm。
画图需要tikz绘图环境,和写公式一样,通过\begin{tikzpicture}开始\end{tikzpicture}结束。

也可以不必这么麻烦用tikzpicture环境,直接写\tikz,参数在后面直到遇见分号(就像数学环境$$),例如我画一个路(用户手册称之为path)

\tikz \draw (-1.5,0) -- (1.5,0) -- (0,-1.5) -- (0,1.5);

在这里插入图片描述
显然path是连通的。
所有的tikz绘图都需要在{tikzpicture}或者\tikz环境下。

曲线、圆、椭圆和弧

用灰色圆圈填充几个点:

\begin{tikzpicture} 
\filldraw [gray] 
(0,0) circle (2pt) 
(1,1) circle (2pt) 
(2,1) circle (2pt) 
(2,0) circle (2pt); 
\end{tikzpicture} 

格式就是\filldraw [颜色]
点坐标 点类型 大小

在这之上画个曲线,以(0,0)为起点(2,0)为重点,“控制点”为(1,1),(2,1)\draw (0,0) .. controls (1,1) and (2,1) .. (2,0);
在这里插入图片描述
原文章说,曲线怎么得出来的数学算法并不重要,只要知道曲线总是向着控制点去的,比如起点处的切线方向是朝着第一个控制点去的,以此类推。

我可以据此画个半圆:

\begin{tikzpicture} 
\draw (-1.5,0) -- (1.5,0); 
\draw (0,-1.5) -- (0,1.5); 
\draw (-1,0) .. controls (-1,0.555) and (-0.555,1) .. (0,1) .. controls (0.555,1) and (1,0.555) .. (1,0); 
\end{tikzpicture}

在这里插入图片描述

还得算切点,太麻烦了,用circle命令直接画:

\tikz \draw (0,0) circle (10pt);

圆心坐标 circle 半径长

把它揉瘪成椭圆:

\tikz \draw (0,0) ellipse (20pt and 10pt);

中心坐标 ellipse 长轴长and短轴长

甚至可以让它逆时针转个30度

\tikz \draw[rotate=30] (0,0) ellipse (6pt and 3pt);

画出来三个圈:
在这里插入图片描述
可以用\draw (0,0) rectangle (0.5,0.5);画个矩形,参数是两个对角坐标点。

\begin{tikzpicture} 
\draw (-1.5,0) -- (1.5,0);
\draw (0,-1.5) -- (0,1.5); 
\draw (0,0) circle (1cm); 
\draw (0,0) rectangle (0.5,0.5); 
\draw (-0.5,-0.5) rectangle (-1,-1); 
\end{tikzpicture}

在这里插入图片描述

网格线也给安排上

\begin{tikzpicture} 
\draw[step=.5cm,gray,very thin] (-1.4,-1.4) grid (1.4,1.4); 
\draw (-1.5,0) -- (1.5,0); 
\draw (0,-1.5) -- (0,1.5); 
\draw (0,0) circle (1cm); 
\draw (3mm,0mm) arc (0:30:3mm);
\end{tikzpicture}

网格步长、颜色(可省略)、线宽(可省略),两个对角线坐标点内画网格。
在这里插入图片描述
甚至随手用arc来了一段圆弧
arc前参数是起点,后面三个参数分别是起始角度,终值角度,半径(角度以笛卡尔坐标系为准)
如10:80:10pt表示画一段从10度到80度的圆弧,圆半径为10个像素点。
当然也可以写四个参数当做是画椭圆弧:

\tikz \draw (0,0) arc (0:315:1.75cm and 1cm);

在这里插入图片描述
如果嫌尺度不够大,可以在环境后面添加scale参数调整比如\begin{tikzpicture}[scale=3]是放大了三倍。

如果嫌尺度太大了,可以用clip裁剪图片

\begin{tikzpicture}
\clip (-0.1,-0.2) rectangle (1.1,0.75); 
\draw[step=.5cm,gray,very thin] (-1.4,-1.4) grid (1.4,1.4); 
\draw (-1.5,0) -- (1.5,0); 
\draw (0,-1.5) -- (0,1.5); 
\draw (0,0) circle (1cm); 
\draw (3mm,0mm) arc (0:30:3mm); 
\end{tikzpicture}

这段代码是在原图的基础上,从(-0.1,-0.2)到(1.1,0.75)裁一个矩形出来。
在这里插入图片描述
也可以裁出一个圆来,裁的同时画出这个圆。

\clip[draw] (0.5,0.5) circle (.6cm);

在这里插入图片描述

下面整点高级的曲线画着玩玩:

抛物线:

\tikz \draw (0,0) rectangle (1,1) (0,0) parabola (1,1);

在这里插入图片描述
或者这样:

\tikz \draw[x=1pt,y=1pt] (0,0) parabola bend (4,16) (6,12);

在这里插入图片描述
画出来的抛物线相当于 f ( x ) = x 2 f(x)=x^2 f(x)=x2的移位和放缩。

画个正余弦:

\tikz \draw[x=1.57ex,y=1ex] (0,0) sin (1,1) cos (2,0) sin (3,-1) cos (4,0) (0,1) cos (1,0) sin (2,-1) cos (3,0) sin (4,1);

在这里插入图片描述
manual上的内容太多了,目前只搬移了一部分,如果大家觉得有用了点个赞,我随喜赞叹 更新。
下一篇:利用emoji画GPS卫星2D分布图(2)

  • 11
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值