用于重现下图的一小段 tikz 代码是什么?
这说明了与该源的汉明距离:http://withits.epfl.ch/_media/events/slides-elgamal.pdf
笔记:我对这个问题很熟悉绘制一个$\epsilon$邻域,但它并没有真正回答我的探索。
答案1
欢迎来到 TeX.SE!编辑:调整tension
参数以获得更平滑的输出。
\documentclass[tikz,border=3.14mm]{standalone}
\begin{document}
\begin{tikzpicture}
\draw[double distance=6pt,fill=blue] plot[smooth cycle,tension=0.7] coordinates {(0,0) (0.3,0.6) (1,0.8) (1.4,0.2)
(1.2,-0.3) (0.4,-0.4)};
\draw[latex-] (3pt,0) -- ++(-1,-0.2) node[left]{$\mathcal{A}$};
\draw[latex-] (1.4cm+3pt,0.2) -- ++(1,-0.2)
node[right]{$\Gamma_\ell(\mathcal{A})$};
\end{tikzpicture}
\end{document}
这个动画稍微展示了一下张力的作用。
\documentclass[tikz,border=3.14mm]{standalone}
\begin{document}
\foreach \X in {0.5,0.6,...,1.5}
{\begin{tikzpicture}
\draw[double distance=6pt,fill=blue] plot[smooth cycle,tension=\X] coordinates {(0,0) (0.3,0.6) (1,0.8) (1.4,0.2)
(1.2,-0.3) (0.4,-0.4)};
\draw[latex-] (3pt,0) -- ++(-1,-0.2) node[left]{$\mathcal{A}$};
\draw[latex-] (1.4cm+3pt,0.2) -- ++(1,-0.2)
node[right]{$\Gamma_\ell(\mathcal{A})$};
\end{tikzpicture}}
\end{document}
当然你也可以调整坐标。
答案2
你可以简单地先画一个三角形,像\draw (1,0)--(-2,3)--(2,5)--cycle
,然后借助网格在每对顶点之间添加两个控制点,像.. controls (a) and (b)..
。你需要稍微调整控制点,以获得所需的形状。看看这个答案例如,了解更多有关如何选择控制点的信息。
\documentclass[tikz,border=5pt]{standalone}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[scale=.5, > = Stealth]
\draw[double distance=10pt,fill=blue] (1,0) .. controls (-1.5,0) and (-2.5,2)..
(-2,3) .. controls (-1,5) and (1,5.3) ..
(2,5) .. controls (5,4) and (3,0) ..
(1,0) -- cycle;
\draw[<-] (-1.5,1.5) -- ++(-1,-0.2) node[left]{$\mathcal{A}$};
\draw[<-] (3.5,1.5) -- ++(1,-0.2) node[right]{$\Gamma_\ell(\mathcal{A})$};
\end{tikzpicture}
\end{document}