如何在 TikZ 中绘制以下图像?

如何在 TikZ 中绘制以下图像?

如何在 TikZ 中绘制以下图像?我可以将其分成 3 个部分然后绘制它,但是仅通过绘制两个对象有什么直接的技巧吗?

在此处输入图片描述

答案1

这将其绘制为两个对象。

\documentclass[border=2mm,tikz]{standalone}
\begin{document}
    \begin{tikzpicture}
    \draw (90:0.2) arc(90:430:0.5 and 0.2);
    \draw[dash pattern=on 7pt off 3pt on 20pt] (-110:0.5) -- ++ (70:1);
    \end{tikzpicture}
\end{document}

在此处输入图片描述

如果您对调整虚线图案感到困扰,但又不介意用白色覆盖物体,那么您可以使用这个。

\documentclass[border=2mm,tikz]{standalone}
\begin{document}
    \begin{tikzpicture}
    \draw (-110:0.5) -- ++ (70:1);
    \draw[preaction={draw,white,line width=4pt}] (90:0.2) arc(90:430:0.5 and 0.2);
    \end{tikzpicture}
\end{document}

在此处输入图片描述

仍有 2 个对象。

答案2

你可以用单身的小路 !

\documentclass[tikz]{standalone}
\newcommand\singlepath[2]{% #1: a, #2: b (radii of ellipse)
  ++(70:#1 and #2) arc(70:-270:#1 and #2)
  ++(-90:#1 and #2) -- ++(80:2*#1 and 2*#2)
  ++(-100:3.3*#1 and 3.3*#2) -- ++(-100:2*#1 and 2*#2);
}
\begin{document}
\begin{tikzpicture}
  \draw[line width=1pt] (0,0)   \singlepath{1}{.3};
  \draw[red]            (2.5,0) \singlepath{1}{.2};
  \draw[dashed,blue]    (4.5,0) \singlepath{.5}{.3};
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容