在 Stein 和 Shakarchi 的实分析讲稿第 4 章图 9 中(第 137 页,看这里),作者描绘出一个区域,直到某个小写 delta 值。这似乎是一个简单的 TikZ 问题,但我很难对其进行编码(我是一个 TikZ 初学者)。非常感谢任何关于如何开始的建议。谢谢!
答案1
这不是一个完美的解决方案,但如果您想要简单一点,您可以使用贝塞尔曲线绘制 Gamma 和上下两条虚线,然后用圆弧完成区域的边界。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[thick] (0,0) .. controls (2,1) and (4,-1) .. (6,0) node[yshift=-2mm] {\(\Gamma\)};
\draw[dotted, thick] (-.2, .5) .. controls (1.8,1.5) and (3.8, -.5) .. (5.8, .5);
\draw[dotted, thick] ( .2,-.5) .. controls (2.2, .5) and (4.2,-1.5) .. (6.2,-.5);
\draw[dotted, thick] (-.2, .5) arc[start angle=115, end angle=290, radius=.54];
\draw[dotted, thick] (6.2,-.5) arc[start angle=-70, end angle=115, radius=.54];
\node at (1,1) {\(\Gamma^\delta\)};
\end{tikzpicture}
\end{document}
答案2
仅供比较,以下是元帖子,LuaLaTex内置的绘图语言。
\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\begin{document}
\mplibtextextlabel{enable}
\begin{mplibcode}
vardef sausage expr d of p =
for t=0 step 1/4 until length p:
point t of p shifted (d * unitvector(direction t of p rotated 90))
{direction t of p} ..
endfor
for t=length p step -1/4 until 0:
point t of p shifted (d * unitvector(direction t of p rotated -90))
{- direction t of p} ..
endfor cycle
enddef;
beginfig(1);
path p, s;
p = origin {dir 42} .. 200 right {dir 42};
s = sausage 16 of p;
draw p;
draw s dashed withdots scaled 1/2;
label.lrt("$\Gamma$", point 7/8 of p);
label.top("$\Gamma^\delta$", directionpoint right of s);
endfig;
\end{mplibcode}
\end{document}
编译此文件lualatex
可获得如下 PDF:
我的sausage d of p
宏会自动计算周围的路径。它应该适用于任何平滑、非封闭的路径p
,以及任何相当小的位移d
。