画一条接近圆的线

画一条接近圆的线

我有一个node(使用 TikZ 和形状库)

\node (c0) [circle, draw] at (0,0) {foo};

和一个坐标

\coordinate (c1) at (4,2);

我怎样才能从 到 画一条线c1c0.north west使该线首先沿y的坐标c1(此处为 2)水平延伸,然后c0在适当的点转向,以便当它到达 时垂直于圆c0.north west? 两条线段都是直线,弯曲处是尖角/圆角(无所谓)。 以下是上述内容的简单草图:

在此处输入图片描述

答案1

您可以在节点的边界上选择一个角度(不需要坐标,因为它们的中心也是边界坐标),并使用它来执行简单的计算。假设我们取 30(north west是 135,下面第二张图片,然后是 10),那么我们有

\documentclass[tikz]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\node (c0) [circle, draw] at (0,0) {foo};
\coordinate (c1) at (4,2);

\draw let \p1=($(c1)-(c0.30)$),\n1={\y1/sin(30)} in (c0.30)--++(30:\n1) -- (c1);

\end{tikzpicture}
\end{document}

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

您可以进一步为这个简单的想法提供一种风格,使角度成为一个变量等等。显然,我们希望我们的角度在 [0+ε,π-ε] 内,对于一些较小的 ε 公差,否则就会在无穷远处看到您(对我来说这是文本宽度)。

相关内容