TikZ:在任意线周围绘制边界区域

TikZ:在任意线周围绘制边界区域

在 Stein 和 Shakarchi 的实分析讲稿第 4 章图 9 中(第 137 页,看这里),作者描绘出一个区域,直到某个小写 delta 值。这似乎是一个简单的 TikZ 问题,但我很难对其进行编码(我是一个 TikZ 初学者)。非常感谢任何关于如何开始的建议。谢谢!

图 9:任意曲线伽马和边界集。

答案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

相关内容