导师让我们写的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)=x2f(x)=x^2f(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)

LaTeX tikz初探——基本图形绘制(1)相关推荐

  1. LaTeX tikz初探——利用emoji画GPS卫星3D分布图(3)

    zhb学了一个晚上,又提供了3D卫星图的绘制. 效果图: 笔记写在注释里了 % HB-吃井不忘挖水人 \documentclass[tikz,border=3.14mm]{standalone} \u ...

  2. LaTeX tikz初探——利用emoji画GPS卫星2D分布图(2)

    zhb提供的代码,我拿来啃了一段,写了些笔记注释. emoji包需用LaTeX最新版本,实测texlive2018不行,texlive2020可以. 编译系统需要选择:LuaLatex 效果图: 笔记 ...

  3. LaTeX tikz初探——空间矢量旋转示意图,四元数(4)

    zhb学了一个晚上,又完成了一项作业,提供了代码. 先放图: 代码和相关注释笔记如下: \documentclass[tikz,border=3.14mm]{standalone} \usepacka ...

  4. matlab图形绘制基础(东北大学MOOC笔记)

    %% 二维图形绘制 % 多纵轴曲线绘制 figure(1); t = 0:0.01:2*pi; y1 = sin(t); y2 = 10*cos(t); % plotyy(t, y1, t, y2); ...

  5. tableau两个不同的图合并_Tableau可视化分析-业务常用图形绘制1

    微信公众号链接: Tableau可视化分析-业务常用图形绘制1​mp.weixin.qq.com 哑铃图VS 火柴图 哑铃图,又名DNA图,横着看是哑铃,竖着看就是DNA,它主要用来表现两个数据点之间 ...

  6. c++之openGL在VS中的配置及简单图形绘制

    VS中openGL的配置 相关资源下载: 链接:https://pan.baidu.com/s/1hRlxbckgLsNiS87k5CPvLg 提取码:tz87 以vs2010为例: 将下载的压缩包解 ...

  7. 13个JavaScript图表图形绘制插件

    由于绘制矢量图的不同技术愈发成熟以及现代浏览器所具备的更强大的计算能力等原因,目前网上出现了越来越多免费 的JavaScript图表和图形绘制解决方案.在本文中就将分享13个优秀实用的JavaScri ...

  8. 史上最扯Java图形绘制(J2SE)之一JAVA动画效果

    很多主一听说Java界面,一水的头大外带血压高,兄弟我倒觉得没什么必要.           其实Java这东西吧,就简便性和其初衷而言,真他妈就在GUI 这地界是有优势的,单就其2D界面开发的易用性 ...

  9. Matlab学习笔记——图形绘制

    写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 目录 图形绘制 1.正弦曲线绘制 2.常用三角函数曲线的绘制 图形绘制 1.正弦曲线绘制 以产生一个简单的正弦函数曲线为 ...

最新文章

  1. 从0梳理1场CV缺陷检测赛事!
  2. 表现与数据分离;前台MVC
  3. jmeter jdbc mysql_jmeter获取JDBC响应做接口关联(三)
  4. 苹果Apple Music正式登陆索尼PS5
  5. 如何在20分钟内批量部署20台ESXi服务器?
  6. SRM 567 div2
  7. 转:imageNamed和dataWithContentsOfFile的区别
  8. 【Python】基于Python的百度迁徙1——迁入、迁出数据(附代码)
  9. android8.1dolby,努比亚X刷杜比音效教程-按推理支持绝多数安卓8和安卓9系统
  10. Hamcrest 精萃
  11. org.apache.commons.io.IOUtils 的用法(神器,再也不用写冗余代码了)
  12. android程序 获取flash容量大小,Android用WebView加载flash大文件偶然会出现内存溢出以及蓝色打问号小方块问题的解决方案...
  13. js实现鼠标移动到div背景颜色变换,移开还原
  14. 为什么有网络微信却显示未连接服务器,设备公众号显示未连接,为什么公众号设备显示未连接?...
  15. 腾讯区块链团队首次换将,蔡弋戈将变动职务
  16. 巡逻机器人(Patrol Roboot,UVa1600)
  17. Missing Marketing Icon. iOS Apps must include a 1024x1024px Marketing Icon in PNG format. Apps that
  18. 【CSS】CSS样式表+复合选择器
  19. python爬虫实战:selenium下载百度文库文档
  20. 基于OpenVINOTM2022.2和蝰蛇峡谷优化并部署YOLOv5模型

热门文章

  1. 苹果自动驾驶“排名垫底”,每1.1英里就发生一次脱离...
  2. 解决ssh登录慢,等待时间长的问题
  3. QTP引用外部脚本路径的设定(二)left函数的使用
  4. 印度大量投资太阳能已取得成效 足以媲美煤炭
  5. 数据结构 栈的实例应用,括号匹配
  6. MaxCompute实战之数据存储
  7. CoreData的数据迁移
  8. 褪去华衣 裸视学习 - 机器学习 - 转
  9. 理解TCP/IP协议
  10. 浅析希区柯克的悬念电影:以《惊魂记》为例