用 Tikz 绘制连接到圆圈的圆弧?

用 Tikz 绘制连接到圆圈的圆弧?

如何绘制与圆相连的圆弧?

我尝试了两种方法但都失败了:

\begin{tikzpicture}
\draw[color=black, fill=none, thick] circle (0.5) ++(45:0.5) coordinate (A) ++(-45:0.5) coordinate (B);
%It accepts the definition of (A), but not of (B).
\draw[thick] (A) to[out=45, in=135, looseness=4] (B);
\end{tikzpicture}

\begin{tikzpicture}
(0,0) node(A) [circle,draw,fill, radius=0.5] {} 
\draw[thick] (A) to[out=45, in=-45, looseness=4] (A);
\end{tikzpicture}

第二种方法没有绘制任何东西。(我知道我可以使用三角函数来计算圆弧端点的坐标,但我希望得到一个紧凑、优雅的解决方案。)

编辑:我需要圆弧末端与圆正交。d8xa 为坐标 ++(45:0.5) 和 ++(-45:0.5) 提供了一个很好的解决方案。但是,它不适用于相距较远的坐标,例如 ++(0:0.5) 和 ++(180:0.5)。(AboAmmar 的解决方案也存在问题。)

所以我仍然希望不仅能够控制端点及其角度,还能控制圆弧的中点。

我可以

\draw (A.0) .. controls ++(0:1) and ++(180:1) .. (A.180);

或者

\draw (A.0) .. controls (0,1) .. (A.180);

但它们能结合在一起吗?

在此处输入图片描述

答案1

最简单的方法?见下文。如果您有一些特定要求,但您没有提供任何内容,那么还有很多其他选择。

\documentclass[tikz,border=5pt]{standalone} 

\begin{document}

\begin{tikzpicture}
\draw [thick] (0.5,0) circle (0.55);
\draw [fill=white, thick] circle (0.5);
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案2

第二个代码块的关键是锚点。您可以使用关键字(A如等)或角度来指定对象的锚点。然后引用 A 边界框上角度 15 处的点。这样您就可以像这样写弧:northwestA.15

\begin{tikzpicture}
\node [thick, circle, draw, fill=none, radius=0.5] (A) at (0,0) {}; 
\draw [thick] (A.45) to[out=45, in=-45, looseness=4] (A.135);
\end{tikzpicture}

但如您所见,使用此方法很难得到如您绘制的圆弧。请参阅@AboAmmar 的回答。

答案3

圆弧的起始和终止角度很容易计算,在下面的代码中你可以alpha随意设置。

\documentclass[tikz,border=3mm]{standalone}
\begin{document}
\begin{tikzpicture}[declare function={r=1;alpha=30;}]
 \draw[thick] circle[radius=r]
  (alpha:r) arc[start angle=180-alpha,end angle=-180+alpha,radius=r];
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容