TikZ 中带有半虚线的圆环

TikZ 中带有半虚线的圆环

有没有一种简单的方法可以在 TikZ 中制作一个由两个圆圈环绕的双圆环,每个圆圈都有不可见的半个虚线,就像草图中那样?在此处输入图片描述

答案1

您可能已经发现,或者可能没有发现,在 2D 表面上精确编码圆环非常困难(因为它是 3D 的投影)。本着这种精神,我按原样绘制了您的图片,只是通过反复试验,找到正确的长度。这绝对不是一种干净的方法,但我认为它适用于像这样的复杂图片。不需要额外的TikZ软件包。以下是代码:

\begin{tikzpicture}[rotate=180]
%Torus
\draw (0,0) ellipse (1.6 and .9);
%Hole
\begin{scope}[scale=.8]
\path[rounded corners=24pt] (-.9,0)--(0,.6)--(.9,0) (-.9,0)--(0,-.56)--(.9,0);
\draw[rounded corners=28pt] (-1.1,.1)--(0,-.6)--(1.1,.1);
\draw[rounded corners=24pt] (-.9,0)--(0,.6)--(.9,0);
\end{scope}
%Cut 1
\draw[densely dashed] (0,-.9) arc (270:90:.2 and .365);
\draw (0,-.9) arc (-90:90:.2 and .365);
%Cut 2
\draw (0,.9) arc (90:270:.2 and .348);
\draw[densely dashed] (0,.9) arc (90:-90:.2 and .348);
\end{tikzpicture}

结果如下:

在此处输入图片描述

我对我的代码有些不满意:

  • 我画了一个嘴唇朝另一个方向的洞,后来我才意识到你这样做了。所以我只是把它放在[rotate=180]开头,而不是让代码合适。只需删除它就可以把它翻转回来。

  • 最初这个洞太小了,但它的曲率恰到好处。所以我就把整个洞缩放到看起来更好,因此就有了这个{scope}[scale=.8]部分。

  • 我认为两个半实半虚的切口应该都朝同一个方向,这是我个人的看法。但这是你的图片,所以就这样吧。如果你确实想这样做,请[densely dotted]从同一切口的一端剪切并粘贴到另一端。

结论:对于一个简单(但代码方面困难)的绘图,我有一个糟糕的(但视觉上可以的)解决方案。

相关内容