当前位置: 首页 > news >正文

LaTeX / TikZ 几何图形绘制完整参考手册

LaTeX / TikZ 几何图形绘制完整参考手册

适用于 TeXStudio + TeX Live 2025 / MiKTeX 2025 环境
核心包:pgf/tikz 3.1.11(2025年8月发布)
参考来源:Wikibooks LaTeX/PGF/TikZ、Overleaf 官方教程、tikz.dev 手册、Wikipedia PGF/TikZ 词条


扩展部分请点击这里前往

文章目录

  • LaTeX / TikZ 几何图形绘制完整参考手册
    • 1. 环境准备与基本结构
      • 1.1 TeXStudio 设置建议
      • 1.2 最小文档模板
    • 2. 通用绘图语法速查
      • 2.1 核心命令
      • 2.2 路径操作符
      • 2.3 常用选项参数
      • 2.4 颜色混合语法
    • 3. 平面二维图形
      • 3.1 直线与折线
        • 语法
        • 案例
      • 3.2 三角形
        • 语法
        • 案例
      • 3.3 矩形
        • 语法
        • 案例
      • 3.4 平行四边形
        • 语法
        • 案例
      • 3.5 圆与椭圆
        • 语法
        • 案例
      • 3.6 正多边形
        • 语法
        • 案例
      • 3.7 五角星
        • 案例
      • 3.8 不规则多边形与曲线
        • 不规则多边形
        • 贝塞尔曲线与有机形状
    • 4. 空间三维图形
      • 4.1 正方体
        • 方法:手动斜投影(cabinet projection)
        • 方法:使用 `tikz-3dplot`(更精确的视角控制)
      • 4.2 长方体(Cuboid)
      • 4.3 圆柱
      • 4.4 圆锥
      • 4.5 球体
        • 带渐变填充的实心球体(更美观)
    • 5. 样式与美化
      • 5.1 线型与粗细
      • 5.2 填充图案(patterns 库)
      • 5.3 渐变填充(shading)
      • 5.4 使用 `\tikzset` 定义可复用样式
    • 6. 综合实践案例
      • 案例一:几何图形展示板
      • 案例二:三维几何体展示板
      • 案例三:带标注的几何图(平面图形作图)
    • 7. 常用宏包与库一览
    • 附录:快速语法参考卡

1. 环境准备与基本结构

1.1 TeXStudio 设置建议

在 TeXStudio 中使用 TikZ,推荐编译链设置为:

  • 编译器pdfLaTeX(或XeLaTeX,中文文档时推荐)
  • BibTeX:不必须
  • 菜单路径:Options → Configure TeXStudio → Build

1.2 最小文档模板

\documentclass[12pt]{article} \usepackage{tikz} % 核心包 \usetikzlibrary{shapes.geometric} % 几何形状库 \usetikzlibrary{patterns} % 填充图案库 \usetikzlibrary{3d} % 基础 3D 支持 \usepackage{tikz-3dplot} % 三维坐标系(绘制球体等) \begin{document} \begin{tikzpicture} % 在此处写绘图命令 \end{tikzpicture} \end{document}

说明tikzpicture是所有 TikZ 绘图的环境容器,所有绘图命令必须写在其中。


2. 通用绘图语法速查

2.1 核心命令

命令说明
\draw绘制路径(不填充)
\fill填充路径(不描边)
\filldraw同时填充并描边
\node放置带文字的节点形状
\coordinate定义命名坐标点

2.2 路径操作符

操作符说明示例
--直线连接两点(0,0) -- (1,1)
cycle闭合路径回到起点(0,0) -- (1,0) -- cycle
rectangle矩形(对角两点)(0,0) rectangle (2,1)
circle圆形(半径)(0,0) circle (1cm)
ellipse椭圆(x半轴 and y半轴)(0,0) ellipse (2cm and 1cm)
arc圆弧(起始角:结束角:半径)(1,0) arc (0:90:1)
.. controls贝塞尔曲线(0,0) .. controls (1,1) .. (2,0)

2.3 常用选项参数

\draw[ color=red, % 颜色 fill=blue!30, % 填充色(30%蓝色) line width=2pt, % 线宽 dashed, % 虚线 dotted, % 点线 thick, % 粗线(约0.8pt) very thick, % 更粗(约1.2pt) ultra thick, % 极粗(约1.6pt) opacity=0.5, % 整体透明度 fill opacity=0.3, % 仅填充透明度 rotate=45, % 旋转角度(度) scale=1.5, % 缩放 xshift=1cm, % 水平偏移 yshift=0.5cm, % 垂直偏移 ]

2.4 颜色混合语法

red!50 % 50% 红色(混入白色) red!50!blue % 50% 红 + 50% 蓝 blue!30!black % 30% 蓝 + 70% 黑

3. 平面二维图形

3.1 直线与折线

语法
\draw[选项] (起点) -- (终点); % 直线 \draw[选项] (P1) -- (P2) -- (P3) -- ...; % 折线
案例
\documentclass{standalone} \usepackage{tikz} \begin{document} \begin{tikzpicture} % 普通直线 \draw[blue, thick] (0,0) -- (4,0); % 带箭头的直线(坐标轴风格) \draw[->, red, thick] (0,1) -- (4,1) node[right] {$x$}; % 折线 \draw[green!60!black, very thick] (0,2) -- (1,3) -- (2,2) -- (3,3) -- (4,2); % 虚线 \draw[dashed, gray] (0,3.5) -- (4,3.5); \end{tikzpicture} \end{document}

3.2 三角形

语法

三角形通过连接三个点并使用cycle闭合路径来绘制:

\draw (x1,y1) -- (x2,y2) -- (x3,y3) -- cycle;
案例
\documentclass{standalone} \usepackage{tikz} \begin{document} \begin{tikzpicture} % 1. 普通三角形(仅描边) \draw[blue, thick] (0,0) -- (3,0) -- (1.5,2.5) -- cycle; % 2. 填充三角形 \filldraw[fill=orange!40, draw=orange!80!black, very thick] (4,0) -- (7,0) -- (5.5,2.5) -- cycle; % 3. 直角三角形 \filldraw[fill=green!30, draw=green!60!black] (0,-1.5) -- (2,-1.5) -- (0,-4) -- cycle; % 4. 等边三角形(利用数学计算精确坐标) % 边长 = 3,高 = 3*sqrt(3)/2 ≈ 2.598 \filldraw[fill=purple!30, draw=purple] (4,-4) -- (7,-4) -- (5.5,-1.402) -- cycle; % 标注顶点 \node[below left] at (0,0) {$A$}; \node[below right] at (3,0) {$B$}; \node[above] at (1.5,2.5) {$C$}; \end{tikzpicture} \end{document}

3.3 矩形

语法
\draw (左下角) rectangle (右上角);

rectangle是 TikZ 内置关键字,只需提供对角线上的两个坐标。

案例
\documentclass{standalone} \usepackage{tikz} \begin{document} \begin{tikzpicture} % 1. 基本矩形 \draw[blue, thick] (0,0) rectangle (3,2); % 2. 填充矩形 \filldraw[fill=yellow!50, draw=black, thick] (4,0) rectangle (7,2); % 3. 正方形 \filldraw[fill=red!30, draw=red] (0,-3) rectangle (2,-1); % 4. 圆角矩形(rounded corners) \draw[thick, rounded corners=5pt, fill=cyan!20] (4,-3) rectangle (7,-1); % 5. 旋转的矩形 \begin{scope}[rotate=30] \draw[dashed, thick, fill=pink!50] (0,-5) rectangle (3,-3.5); \end{scope} \end{tikzpicture} \end{document}

3.4 平行四边形

语法

平行四边形没有内置命令,通过指定四个顶点坐标并用cycle闭合绘制:

\draw (x1,y1) -- (x2,y2) -- (x3,y3) -- (x4,y4) -- cycle;

坐标规律:若底边从(a,b)(a+w,b),偏移量为d,则:

  • 左下:(a, b)
  • 右下:(a+w, b)
  • 右上:(a+w+d, b+h)
  • 左上:(a+d, b+h)
案例
\documentclass{standalone} \usepackage{tikz} \begin{document} \begin{tikzpicture} % 1. 基本平行四边形(向右倾斜) % 底边宽=3,高=2,水平偏移=1 \filldraw[fill=blue!20, draw=blue, thick] (0,0) -- (3,0) -- (4,2) -- (1,2) -- cycle; % 标注顶点 \node[below left] at (0,0) {$A$}; \node[below right] at (3,0) {$B$}; \node[above right] at (4,2) {$C$}; \node[above left] at (1,2) {$D$}; % 2. 向左倾斜的平行四边形 \filldraw[fill=red!20, draw=red, thick] (6,0) -- (9,0) -- (8,2) -- (5,2) -- cycle; % 3. 菱形(特殊平行四边形) \filldraw[fill=green!30, draw=green!60!black, thick] (1,-3) -- (3,-1.5) -- (5,-3) -- (3,-4.5) -- cycle; \node[below] at (3,-4.5) {菱形}; \end{tikzpicture} \end{document}

3.5 圆与椭圆

语法
% 圆:在圆心处绘制,指定半径 \draw (cx,cy) circle (radius); % 椭圆:指定 x 半轴和 y 半轴 \draw (cx,cy) ellipse (xradius and yradius); % 圆弧:从某点出发,指定起止角度和半径 \draw (start_x, start_y) arc (start_angle : end_angle : radius);
案例
\documentclass{standalone} \usepackage{tikz} \begin{document} \begin{tikzpicture} % 1. 基本圆 \draw[blue, thick] (0,0) circle (1.5cm); % 2. 填充圆 \filldraw[fill=orange!40, draw=orange, thick] (4,0) circle (1.2cm); % 3. 椭圆 \filldraw[fill=purple!30, draw=purple, thick] (0,-4) ellipse (2.5cm and 1.2cm); % 4. 圆弧(半圆) \draw[red, very thick] (2,-3) arc (0:180:1.5); % 5. 同心圆 \draw[gray] (7,0) circle (0.5); \draw[gray] (7,0) circle (1.0); \draw[gray] (7,0) circle (1.5); \filldraw[red] (7,0) circle (0.1); \end{tikzpicture} \end{document}

3.6 正多边形

正多边形使用shapes.geometric库中的regular polygon形状,通过node来绘制。

语法
\usetikzlibrary{shapes.geometric} \node[regular polygon, regular polygon sides = N, % N 为边数 draw, fill = 颜色, minimum size = 尺寸 ] at (x,y) {};
案例
\documentclass{standalone} \usepackage{tikz} \usetikzlibrary{shapes.geometric} \begin{document} \begin{tikzpicture} % 正三角形(3边) \node[regular polygon, regular polygon sides=3, draw=blue, fill=blue!20, minimum size=2cm] at (0,0) {$n=3$}; % 正四边形(4边 = 正方形) \node[regular polygon, regular polygon sides=4, draw=red, fill=red!20, minimum size=2cm] at (3,0) {$n=4$}; % 正五边形 \node[regular polygon, regular polygon sides=5, draw=green!60!black, fill=green!20, minimum size=2cm] at (6,0) {$n=5$}; % 正六边形 \node[regular polygon, regular polygon sides=6, draw=orange, fill=orange!20, minimum size=2cm] at (0,-3) {$n=6$}; % 正七边形 \node[regular polygon, regular polygon sides=7, draw=purple, fill=purple!20, minimum size=2cm] at (3,-3) {$n=7$}; % 正八边形 \node[regular polygon, regular polygon sides=8, draw=cyan!60!black, fill=cyan!20, minimum size=2cm] at (6,-3) {$n=8$}; \end{tikzpicture} \end{document}

3.7 五角星

TikZ 提供两种方式绘制五角星:

方法一:使用shapes.geometric库的star形状(推荐)

\usetikzlibrary{shapes.geometric} \node[star, star points = 5, % 角的数量 star point ratio = 2.5, % 外径/内径比(越大角越尖) draw, fill = 颜色, minimum size = 尺寸 ] at (x,y) {};

方法二:手动连接10个顶点坐标(精确控制)

案例
\documentclass{standalone} \usepackage{tikz} \usetikzlibrary{shapes.geometric} \begin{document} \begin{tikzpicture} % 方法一:使用 star 节点(黄色五角星) \node[star, star points=5, star point ratio=2.5, draw=black, fill=yellow, minimum size=3cm] at (0,0) {}; % 红色五角星,角更尖 \node[star, star points=5, star point ratio=3, draw=red!80!black, fill=red, minimum size=2.5cm] at (4,0) {}; % 六角星 \node[star, star points=6, star point ratio=2, draw=blue, fill=blue!30, minimum size=2.5cm] at (8,0) {}; % 方法二:手动绘制五角星(精确坐标版) % 外半径 R=2,内半径 r=0.8,以 (2,-4) 为中心 \filldraw[fill=gold!80!orange, draw=black, thick] (2,-2) -- (2.588,-3.809) -- (0.382,-4.951) -- (2,-3.236) -- (3.618,-4.951) -- (1.412,-3.809) -- cycle; % 正规计算版五角星(以原点为中心,外径R=1.5,内径r=0.6) \def\R{1.5} \def\r{0.6} \filldraw[fill=yellow!80, draw=orange, thick] ({-4+\R*sin(0)}, {-4+\R*cos(0)}) -- ({-4+\r*sin(36)}, {-4+\r*cos(36)}) -- ({-4+\R*sin(72)}, {-4+\R*cos(72)}) -- ({-4+\r*sin(108)}, {-4+\r*cos(108)}) -- ({-4+\R*sin(144)}, {-4+\R*cos(144)}) -- ({-4+\r*sin(180)}, {-4+\r*cos(180)}) -- ({-4+\R*sin(216)}, {-4+\R*cos(216)}) -- ({-4+\r*sin(252)}, {-4+\r*cos(252)}) -- ({-4+\R*sin(288)}, {-4+\R*cos(288)}) -- ({-4+\r*sin(324)}, {-4+\r*cos(324)}) -- cycle; \end{tikzpicture} \end{document}

3.8 不规则多边形与曲线

不规则多边形

任意形状的多边形通过罗列顶点坐标 +cycle来实现:

\documentclass{standalone} \usepackage{tikz} \begin{document} \begin{tikzpicture} % 不规则五边形 \filldraw[fill=teal!30, draw=teal, thick] (0,0) -- (3,0.5) -- (4,2) -- (2,3.5) -- (-0.5,2) -- cycle; % L 形(凹多边形) \filldraw[fill=pink!60, draw=red!60, thick] (5,0) -- (9,0) -- (9,1.5) -- (7,1.5) -- (7,3) -- (5,3) -- cycle; % 箭头形状 \filldraw[fill=blue!30, draw=blue!70, thick] (0,-5) -- (2.5,-5) -- (2.5,-4) -- (4,-5.5) -- (2.5,-7) -- (2.5,-6) -- (0,-6) -- cycle; \end{tikzpicture} \end{document}
贝塞尔曲线与有机形状
\documentclass{standalone} \usepackage{tikz} \begin{document} \begin{tikzpicture} % 简单二次贝塞尔曲线(一个控制点) \draw[blue, very thick] (0,0) .. controls (1,3) .. (4,0); % 三次贝塞尔曲线(两个控制点) \draw[red, very thick] (0,-2) .. controls (1,0) and (3,-4) .. (4,-2); % 闭合有机形状("水滴") \filldraw[fill=green!30, draw=green!60!black, thick] (0,-5) .. controls (-1.5,-3.5) and (-1.5,-6.5) .. (0,-5) .. controls (1,-4) and (2,-3) .. (1,-5.5) .. controls (0.5,-6.5) and (-0.5,-6.5) .. (0,-5); % 波浪线 \draw[orange, thick] (0,-7.5) .. controls (0.5,-7) and (0.5,-8) .. (1,-7.5) .. controls (1.5,-7) and (1.5,-8) .. (2,-7.5) .. controls (2.5,-7) and (2.5,-8) .. (3,-7.5); \end{tikzpicture} \end{document}

4. 空间三维图形

三维图形在 TikZ 中通过斜投影tikz-3dplot实现真实的三维坐标变换。

4.1 正方体

方法:手动斜投影(cabinet projection)
\documentclass{standalone} \usepackage{tikz} \begin{document} \begin{tikzpicture}[scale=1.5, % 定义三维方向向量(斜等轴测) x={(1cm,0cm)}, y={(0cm,1cm)}, z={(0.4cm,0.3cm)} ] % 定义边长 \def\a{2} % 后面(隐藏面,用虚线) \draw[dashed, gray] (0,0,0) -- (\a,0,0) (0,0,0) -- (0,\a,0) (0,0,0) -- (0,0,\a); % 正面(实线) \filldraw[fill=blue!10, draw=black, thick] (\a,0,0) -- (\a,\a,0) -- (\a,\a,\a) -- (\a,0,\a) -- cycle; % 顶面 \filldraw[fill=blue!20, draw=black, thick] (0,\a,0) -- (\a,\a,0) -- (\a,\a,\a) -- (0,\a,\a) -- cycle; % 右侧面(侧面偏暗) \filldraw[fill=blue!30, draw=black, thick] (\a,0,0) -- (\a,0,\a) -- (\a,\a,\a) -- (\a,\a,0) -- cycle; % 前面可见的三条棱 \draw[black, thick] (\a,0,0) -- (0,0,0) (0,\a,0) -- (0,0,0) (0,0,\a) -- (0,0,0); \end{tikzpicture} \end{document}
方法:使用tikz-3dplot(更精确的视角控制)
\documentclass{standalone} \usepackage{tikz} \usepackage{tikz-3dplot} % 设置视角:俯仰角60°,方位角125° \tdplotsetmaincoords{60}{125} \begin{document} \begin{tikzpicture}[tdplot_main_coords, scale=1.5] \def\a{2} % 隐藏棱(虚线) \draw[dashed, gray] (0,0,0) -- (\a,0,0) (0,0,0) -- (0,\a,0) (0,0,0) -- (0,0,\a); % 底面 \filldraw[fill=cyan!15, draw=black] (\a,0,0) -- (\a,\a,0) -- (0,\a,0) -- (0,0,0) -- cycle; % 正面 \filldraw[fill=cyan!25, draw=black] (0,0,0) -- (\a,0,0) -- (\a,0,\a) -- (0,0,\a) -- cycle; % 侧面 \filldraw[fill=cyan!35, draw=black] (\a,0,0) -- (\a,\a,0) -- (\a,\a,\a) -- (\a,0,\a) -- cycle; % 顶面 \filldraw[fill=cyan!20, draw=black] (0,0,\a) -- (\a,0,\a) -- (\a,\a,\a) -- (0,\a,\a) -- cycle; % 后面两个侧面 \filldraw[fill=cyan!10, draw=black] (0,\a,0) -- (\a,\a,0) -- (\a,\a,\a) -- (0,\a,\a) -- cycle; \filldraw[fill=cyan!15, draw=black] (0,0,\a) -- (0,\a,\a) -- (0,\a,0) -- (0,0,0) -- cycle; \end{tikzpicture} \end{document}

4.2 长方体(Cuboid)

长方体是正方体的延伸,只需将三个方向的尺寸设置为不同值:

\documentclass{standalone} \usepackage{tikz} \usepackage{tikz-3dplot} \tdplotsetmaincoords{60}{125} \begin{document} \begin{tikzpicture}[tdplot_main_coords, scale=1] % 长方体尺寸:x方向=4,y方向=2,z方向=2.5 \def\W{4} % 宽(x方向) \def\D{2} % 深(y方向) \def\H{2.5} % 高(z方向) % 隐藏棱 \draw[dashed, gray!60] (0,0,0) -- (\W,0,0) (0,0,0) -- (0,\D,0) (0,0,0) -- (0,0,\H); % 底面 \filldraw[fill=orange!15, draw=black] (\W,0,0) -- (\W,\D,0) -- (0,\D,0) -- (0,0,0) -- cycle; % 正面 \filldraw[fill=orange!25, draw=black] (0,0,0) -- (\W,0,0) -- (\W,0,\H) -- (0,0,\H) -- cycle; % 右侧面 \filldraw[fill=orange!35, draw=black] (\W,0,0) -- (\W,\D,0) -- (\W,\D,\H) -- (\W,0,\H) -- cycle; % 顶面 \filldraw[fill=orange!20, draw=black] (0,0,\H) -- (\W,0,\H) -- (\W,\D,\H) -- (0,\D,\H) -- cycle; % 后左侧面 \filldraw[fill=orange!10, draw=black] (0,0,0) -- (0,\D,0) -- (0,\D,\H) -- (0,0,\H) -- cycle; % 后面 \filldraw[fill=orange!10, draw=black] (0,\D,0) -- (\W,\D,0) -- (\W,\D,\H) -- (0,\D,\H) -- cycle; % 标注尺寸(可选) \draw[<->, red] (\W+0.3,0,0) -- (\W+0.3,0,\H) node[midway,right]{$H$}; \draw[<->, red] (0,-0.3,0) -- (\W,-0.3,0) node[midway,below]{$W$}; \draw[<->, red] (\W,0,-0.3) -- (\W,\D,-0.3) node[midway,right]{$D$}; \end{tikzpicture} \end{document}

4.3 圆柱

\documentclass{standalone} \usepackage{tikz} \begin{document} \begin{tikzpicture} % 方法:斜投影法绘制圆柱 % 参数 \def\rx{1} % 椭圆 x 半径 \def\ry{0.35} % 椭圆 y 半径(透视压缩) \def\h{3.5} % 高度 % 侧面(矩形 + 弧线效果) \fill[gray!20] (-\rx, 0) rectangle (\rx, \h); \draw[thick] (-\rx, 0) -- (-\rx, \h); \draw[thick] (\rx, 0) -- (\rx, \h); % 底面椭圆(虚线后半) \draw[dashed, gray] (\rx,0) arc (0:180:\rx cm and \ry cm); \draw[thick] (\rx,0) arc (0:-180:\rx cm and \ry cm); % 顶面椭圆(完整实线) \filldraw[fill=gray!40, draw=black, thick] (0,\h) ellipse (\rx cm and \ry cm); \end{tikzpicture} \end{document}

4.4 圆锥

\documentclass{standalone} \usepackage{tikz} \begin{document} \begin{tikzpicture} \def\rx{1.5} % 底面 x 半径 \def\ry{0.4} % 底面 y 半径(透视压缩) \def\h{4} % 高度 % 侧面(两条母线) \fill[orange!20] (-\rx, 0) -- (0, \h) -- (\rx, 0) arc (0:-180:\rx cm and \ry cm) -- cycle; \draw[thick] (-\rx, 0) -- (0, \h) -- (\rx, 0); % 底面椭圆 \draw[dashed, gray] (\rx,0) arc (0:180:\rx cm and \ry cm); \draw[thick] (\rx,0) arc (0:-180:\rx cm and \ry cm); % 顶点标注 \filldraw[black] (0,\h) circle (1.5pt) node[right]{$A$(顶点)}; % 高度标注 \draw[dashed, gray] (0,0) -- (0,\h); \draw[<->, blue] (0.2,0) -- (0.2,\h) node[midway,right]{$h$}; \end{tikzpicture} \end{document}

4.5 球体

球体使用tikz-3dplot+ 渐变填充来模拟三维效果:

\documentclass{standalone} \usepackage{tikz} \usepackage{tikz-3dplot} \tdplotsetmaincoords{60}{115} \begin{document} \begin{tikzpicture}[tdplot_main_coords, scale=2.5] % 绘制赤道圆(虚线后半,实线前半) \draw[dashed, gray] (1,0,0) arc (0:180:1cm and 1cm); % 赤道后半 \draw[thick, black] (1,0,0) arc (0:-180:1cm and 1cm); % 赤道前半 % 绘制两条经线(虚线为隐藏部分) \tdplotsetrotatedcoords{90}{90}{90} \draw[dashed, gray, tdplot_rotated_coords] (1,0,0) arc (0:180:1); % 经线隐藏部分 \draw[thick, tdplot_rotated_coords] (1,0,0) arc (0:-180:1); % 经线可见部分 \tdplotsetrotatedcoords{0}{90}{90} \draw[dashed, gray, tdplot_rotated_coords] (1,0,0) arc (0:180:1); \draw[thick, tdplot_rotated_coords] (1,0,0) arc (0:-180:1); % 坐标轴 \draw[-stealth, thick] (0,0,0) -- (1.5,0,0) node[right]{$x$}; \draw[-stealth, thick] (0,0,0) -- (0,1.3,0) node[right]{$y$}; \draw[-stealth, thick] (0,0,0) -- (0,0,1.3) node[above]{$z$}; \end{tikzpicture} \end{document}
带渐变填充的实心球体(更美观)
\documentclass{standalone} \usepackage{tikz} \begin{document} \begin{tikzpicture} % 使用径向渐变模拟光照球体 \shade[ball color=blue!60!white] (0,0) circle (2cm); % 橙色球 \shade[ball color=orange!80!red] (5,0) circle (1.5cm); % 红色小球 \shade[ball color=red!70!black] (9,0) circle (1cm); \end{tikzpicture} \end{document}

5. 样式与美化

5.1 线型与粗细

\draw[ultra thin] ... % 0.1 pt \draw[very thin] ... % 0.2 pt \draw[thin] ... % 0.4 pt \draw[thick] ... % 0.8 pt \draw[very thick] ... % 1.2 pt \draw[ultra thick] ... % 1.6 pt \draw[line width=3pt] ... % 自定义线宽 \draw[dashed] ... % 虚线 \draw[dotted] ... % 点线 \draw[dash dot] ... % 点划线

5.2 填充图案(patterns 库)

\usetikzlibrary{patterns} \draw[pattern=dots] ... % 点状 \draw[pattern=grid] ... % 网格 \draw[pattern=crosshatch] ... % 交叉线 \draw[pattern=north east lines] ... % 斜线 \draw[pattern=fivepointed stars] ... % 五角星图案 \draw[pattern=horizontal lines] ... % 水平线

5.3 渐变填充(shading)

% 线性渐变(左→右) \shade[left color=blue, right color=red] (0,0) rectangle (4,2); % 线性渐变(上→下) \shade[top color=yellow, bottom color=orange] (0,0) rectangle (4,2); % 径向渐变(球体效果) \shade[inner color=white, outer color=blue!60] (0,0) circle (1.5); % ball color(最像真实球体) \shade[ball color=green!50!black] (0,0) circle (1.5);

5.4 使用\tikzset定义可复用样式

\tikzset{ myshape/.style = { draw = blue!70!black, fill = blue!20, thick, rounded corners = 3pt }, highlight/.style = { fill = yellow!60, draw = orange, very thick } } % 使用自定义样式 \draw[myshape] (0,0) rectangle (3,2); \draw[highlight] (0,0) circle (1);

6. 综合实践案例

案例一:几何图形展示板

\documentclass[12pt]{article} \usepackage{tikz} \usetikzlibrary{shapes.geometric, patterns} \usepackage[a4paper, margin=2cm]{geometry} \begin{document} \begin{center} \textbf{\Large 平面几何图形展示} \end{center} \begin{tikzpicture}[scale=0.9] % === 第一行:基本多边形 === % 三角形 \filldraw[fill=red!25, draw=red!70, thick] (0,0) -- (2,0) -- (1,1.73) -- cycle; \node[below] at (1,-0.2) {等边三角形}; % 矩形 \filldraw[fill=blue!20, draw=blue, thick] (3,0) rectangle (5.5,1.5); \node[below] at (4.25,-0.2) {矩形}; % 平行四边形 \filldraw[fill=green!25, draw=green!60!black, thick] (6.5,0) -- (9,0) -- (9.8,1.5) -- (7.3,1.5) -- cycle; \node[below] at (8.15,-0.2) {平行四边形}; % === 第二行:圆形系列 === % 圆 \filldraw[fill=orange!30, draw=orange, thick] (1,3.5) circle (1.2); \node[below] at (1,2.1) {圆}; % 椭圆 \filldraw[fill=purple!25, draw=purple, thick] (4.5,3.5) ellipse (1.8 and 1); \node[below] at (4.5,2.3) {椭圆}; % 五角星 \node[star, star points=5, star point ratio=2.5, draw=black, fill=yellow, minimum size=2.5cm] at (8.5,3.5) {}; \node[below] at (8.5,2.1) {五角星}; % === 第三行:正多边形 === \node[regular polygon, regular polygon sides=5, draw=teal, fill=teal!20, minimum size=2.2cm] at (1,7) {}; \node[below] at (1,5.7) {正五边形}; \node[regular polygon, regular polygon sides=6, draw=brown, fill=brown!20, minimum size=2.2cm] at (4.5,7) {}; \node[below] at (4.5,5.7) {正六边形}; \node[regular polygon, regular polygon sides=8, draw=magenta, fill=magenta!15, minimum size=2.2cm] at (8,7) {}; \node[below] at (8,5.7) {正八边形}; \end{tikzpicture} \end{document}

案例二:三维几何体展示板

\documentclass[12pt]{article} \usepackage{tikz} \usepackage{tikz-3dplot} \usepackage[a4paper, margin=2cm]{geometry} \begin{document} \begin{center} \textbf{\Large 空间几何体展示} \end{center} \vspace{1cm} % --- 正方体 --- \begin{minipage}{0.3\textwidth} \centering \begin{tikzpicture}[x={(1cm,0)}, y={(0,1cm)}, z={(0.4cm,0.3cm)}, scale=1.2] \def\a{2} \draw[dashed,gray] (0,0,0)--(\a,0,0) (0,0,0)--(0,\a,0) (0,0,0)--(0,0,\a); \filldraw[fill=blue!15,draw=black] (0,0,\a)--(\a,0,\a)--(\a,\a,\a)--(0,\a,\a)--cycle; \filldraw[fill=blue!25,draw=black] (\a,0,0)--(\a,\a,0)--(\a,\a,\a)--(\a,0,\a)--cycle; \filldraw[fill=blue!20,draw=black] (0,\a,0)--(\a,\a,0)--(\a,\a,\a)--(0,\a,\a)--cycle; \draw[black,thick] (\a,0,0)--(0,0,0) (0,\a,0)--(0,0,0) (0,0,\a)--(0,0,0); \end{tikzpicture} \textbf{正方体} \end{minipage} % \begin{minipage}{0.3\textwidth} \centering \begin{tikzpicture}[scale=0.9] \def\rx{1.2} \def\ry{0.3} \def\h{3} \fill[gray!20] (-\rx,0) rectangle (\rx,\h); \draw[thick] (-\rx,0)--(-\rx,\h) (\rx,0)--(\rx,\h); \draw[dashed,gray] (\rx,0) arc (0:180:\rx cm and \ry cm); \draw[thick] (\rx,0) arc (0:-180:\rx cm and \ry cm); \filldraw[fill=gray!40, draw=black, thick] (0,\h) ellipse (\rx cm and \ry cm); \end{tikzpicture} \textbf{圆柱} \end{minipage} % \begin{minipage}{0.3\textwidth} \centering \begin{tikzpicture}[scale=0.9] \def\rx{1.3} \def\ry{0.35} \def\h{3.5} \fill[orange!20] (-\rx,0) -- (0,\h) -- (\rx,0) arc (0:-180:\rx cm and \ry cm) -- cycle; \draw[thick] (-\rx,0)--(0,\h)--(\rx,0); \draw[dashed,gray] (\rx,0) arc (0:180:\rx cm and \ry cm); \draw[thick] (\rx,0) arc (0:-180:\rx cm and \ry cm); \filldraw[black] (0,\h) circle (1.5pt); \end{tikzpicture} \textbf{圆锥} \end{minipage} \vspace{1.5cm} \begin{center} \begin{tikzpicture} % 球体(渐变填充) \shade[ball color=blue!50!white] (0,0) circle (1.8cm); \node[below] at (0,-2) {\textbf{球体}}; % 长方体 \begin{scope}[x={(1cm,0)}, y={(0,1cm)}, z={(0.35cm,0.28cm)}, xshift=5cm, yshift=-0.5cm, scale=1.1] \def\W{3} \def\D{1.5} \def\H{2} \draw[dashed,gray] (0,0,0)--(\W,0,0) (0,0,0)--(0,\D,0) (0,0,0)--(0,0,\H); \filldraw[fill=green!15,draw=black] (0,0,\H)--(\W,0,\H)--(\W,\D,\H)--(0,\D,\H)--cycle; \filldraw[fill=green!25,draw=black] (\W,0,0)--(\W,\D,0)--(\W,\D,\H)--(\W,0,\H)--cycle; \filldraw[fill=green!20,draw=black] (0,\D,0)--(\W,\D,0)--(\W,\D,\H)--(0,\D,\H)--cycle; \draw[black,thick] (\W,0,0)--(0,0,0) (0,\D,0)--(0,0,0) (0,0,\H)--(0,0,0); \end{scope} \node[below] at (6.5,-2) {\textbf{长方体}}; \end{tikzpicture} \end{center} \end{document}

案例三:带标注的几何图(平面图形作图)

\documentclass{standalone} \usepackage{tikz} \usetikzlibrary{angles, quotes, decorations.markings} \begin{document} \begin{tikzpicture}[scale=1.5] % 绘制三角形 ABC \coordinate (A) at (0,0); \coordinate (B) at (4,0); \coordinate (C) at (1.5,3); \filldraw[fill=blue!10, draw=blue, thick] (A) -- (B) -- (C) -- cycle; % 顶点标注 \node[below left] at (A) {$A$}; \node[below right] at (B) {$B$}; \node[above] at (C) {$C$}; % 高(从 C 到 AB 的垂线) \draw[dashed, red] (C) -- (1.5,0) node[below]{$H$}; \draw[red, thick] (1.4,0) -- (1.4,0.1) -- (1.5,0.1); % 直角标记 % 边长标注 \draw[<->, orange] (-0.3,0) -- (-0.3,3) node[midway, left]{$h$}; % 角度标注(需要 angles 和 quotes 库) \pic[draw=green!60!black, thick, angle radius=0.6cm, "$\alpha$"] {angle = B--A--C}; \pic[draw=purple, thick, angle radius=0.5cm, "$\beta$"] {angle = A--B--C}; \end{tikzpicture} \end{document}

7. 常用宏包与库一览

宏包 / 库加载方式用途
tikz\usepackage{tikz}核心绘图包(必须)
tikz-3dplot\usepackage{tikz-3dplot}真实 3D 坐标系、球体
pgfplots\usepackage{pgfplots}数据可视化/函数图像
shapes.geometric\usetikzlibrary{shapes.geometric}正多边形、星形等预定义形状
shapes.symbols\usetikzlibrary{shapes.symbols}符号形状(云、爆炸等)
patterns\usetikzlibrary{patterns}图案填充(斜线、网格等)
3d\usetikzlibrary{3d}基础 3D 平面变换
angles\usetikzlibrary{angles}角度弧标注
quotes\usetikzlibrary{quotes}引用语法标注角度
decorations.markings\usetikzlibrary{decorations.markings}路径上添加箭头等装饰
positioning\usetikzlibrary{positioning}节点相对定位
arrows.meta\usetikzlibrary{arrows.meta}现代箭头样式库
calc\usetikzlibrary{calc}坐标计算(如中点、偏移)
fit\usetikzlibrary{fit}自动拟合节点的包围框

附录:快速语法参考卡

% ============ 基本框架 ============ \usepackage{tikz} \begin{tikzpicture}[选项] ... \end{tikzpicture} % ============ 点、线 ============ \draw (0,0) -- (1,1); % 直线 \draw[->, thick] (0,0) -- (3,0); % 带箭头直线 \draw[rounded corners] (0,0) -- (1,1) -- (2,0); % 圆角折线 % ============ 基本形状 ============ \draw (cx,cy) circle (r); % 圆 \draw (cx,cy) ellipse (rx and ry); % 椭圆 \draw (x1,y1) rectangle (x2,y2); % 矩形 \draw (A) -- (B) -- (C) -- cycle; % 三角形/多边形 % ============ 填充 ============ \fill[blue!30] (0,0) circle (1); \filldraw[fill=red!20, draw=red] (0,0) rectangle (2,1); \shade[ball color=blue] (0,0) circle (1); % 球形渐变 % ============ 正多边形 / 星形(需库)============ \usetikzlibrary{shapes.geometric} \node[regular polygon, regular polygon sides=6, draw] at (0,0) {}; \node[star, star points=5, draw, fill=yellow] at (0,0) {}; % ============ 坐标定义 ============ \coordinate (P) at (1,2); \draw (P) -- (3,4); % ============ 3D(需包)============ \usepackage{tikz-3dplot} \tdplotsetmaincoords{60}{125} \begin{tikzpicture}[tdplot_main_coords] ... \end{tikzpicture} % ============ 文字标注 ============ \node[above] at (1,2) {文字}; \node[draw, circle] at (0,0) {文字};

参考资料

  • Wikibooks: LaTeX/PGF/TikZ(2025年2月更新)
  • tikz.dev — TikZ & PGF Manual(官方在线手册,对应 pgf 3.1.11)
  • Overleaf: TikZ package tutorial
  • Wikipedia: PGF/TikZ(stable release 3.1.11, 2025-08-14)
  • texample.net — TikZ 示例社区
http://www.jsqmd.com/news/889944/

相关文章:

  • UE5 PaperTerrainActor源码深度解析:2D地形系统设计原理与实战避坑
  • iSotEE:在资源受限设备上实现高可靠RTOS与IoT OS的轻量级虚拟化融合
  • 如何快速获取国家中小学智慧教育平台电子课本:完整下载工具指南
  • 127.0.0.1:62581 这个端口为什么是它 端口选择的取舍
  • 2026北京发电机租赁公司口碑优选排行榜:静音发电机、发电机组、发电车出租靠谱服务商实力盘点推荐 - 海棠依旧大
  • 使用 Chrony进行时间同步
  • 告别轮询!用STM32F0的DMA+空闲中断实现高效串口数据接收(附RS485应用实例)
  • 稀疏矩阵乘法硬件加速:基于行积算法与操作计数负载均衡的设计与实现
  • 保姆级 Kali Linux 安装教程|2026 最新完整版
  • 在微服务架构下通过Taotoken实现大模型API的集中管理与容灾
  • 从CuteCom到minicom:手把手教你搭建Ubuntu嵌入式双串口调试环境(附I.MX6ULL实战)
  • IT降本增效没那么复杂
  • 5分钟完成VRChat模型优化:Cats Blender插件完整指南
  • Android开发避坑:支付宝SDK返回4000错误,别急着找官方,先检查你的线程!
  • Vertex AI企业级MLOps实操指南:从控制台卡点到合规部署
  • AI与博弈论驱动的智能渗透测试实践
  • Android SELinux进程保护机制深度解析与调试实践
  • CVEvolve零代码框架:降低科研数据处理门槛,推动科学发现智能化
  • HTTP 500错误根因排查:Content-Type与Authorization头部配置指南
  • AI率总超标?2026年AI写作辅助软件排行榜权威发布,轻松定稿不是梦!
  • 2026新疆高低压成套设备源头直供指南:从乌鲁木齐到全疆的一站式电力工程采购方案 - 企业名录优选推荐
  • OmenSuperHub终极指南:释放惠普游戏本隐藏性能的免费神器
  • 微信QQ消息防撤回终极指南:三分钟掌握完整解决方案
  • 苹果手机照片去背景怎么操作?2026年iOS抠图保姆级教程,一看就会
  • UniApp JS运行时安全:Frida视角下的明文捕获与防御实践
  • Lovable系统突然响应超时?紧急排查清单已更新至v3.2.1(含2024年Q2补丁包优先获取权)
  • ppt模板_0047_彩虹条纹
  • 微信自动化管理工具:3步实现高效微信数据管理
  • 稀疏感知硬件设计:从编码到MAC的AI能效优化实践
  • 我照着B站教程敲了三个月,面试官一个问题让我直接崩了——Java 初学者的书单幸存指南