节点锚点线中心

节点锚点线中心

如果将一个节点定义为一个圆,并且你想使用该节点的锚点(西和东)围绕该节点绘制一个圆弧,那么如何确保该圆弧锚定在中心(下图中的红线;参见下面 MWE 中的“使用坐标”)位于圆周的左侧,而不是左侧边缘(下图中的蓝线;参见下方 MWE 中的“使用锚点”)。

也就是说,如果使用锚点,则会产生黑色输出,但如果使用坐标,则会产生红色输出。

我知道这是一个微妙的观点,但我想正确理解节点锚点的工作原理!

为什么不简单地用坐标来做呢?这是一个更大的图形的一部分,为了简单起见,我理想情况下希望用节点锚点来定义图形。

输出: 在此处输入图片描述

梅威瑟:

\documentclass[12pt,tikz]{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
    %The node:
    \node[circle,draw=black, fill = white, inner sep=0pt,minimum size=1.5cm] (pulley) at (0,0) {};

    %Using anchors:
    \draw[thick,blue] (pulley.west) arc (180:0:0.75);

    %Using coordinates (ideally it should like this output):
    \draw[thick,red] (-0.75,0) arc (180:0:0.75);

    \end{tikzpicture}
\end{document}

答案1

我不知道这是否明显,但这里有一个使用更宽的线条的示例,以便更容易看到:

代码输出

\documentclass[12pt,tikz,border=5mm]{standalone}
\usepackage{tikz}    
\begin{document}
\begin{tikzpicture}
    %The node:
    \node[circle,draw=black, fill = white,line width=1mm, inner sep=0pt,minimum size=1.5cm] (pulley) at (0,0) {};

    %Using anchors:
    \draw[line width=3mm,blue,opacity=0.4] (pulley.west) ++(0.5mm,0) arc[start angle=180,end angle=0,radius=0.75cm];

\node [circle,fill=red,inner sep=0.5pt,draw=none,pin=240:\texttt{.west}] at (pulley.west) {};

\end{tikzpicture}
\end{document}

线索是west锚点位于线的外侧,而不是中间。因此,您必须将起点移动arc线宽的一半。

(如果边框的宽度node与 中使用的线宽相同\draw,则可以使用0.5\pgflinewidth而不是上面明确的 0.5mm。)

虽然我在这里使用笛卡尔坐标进行平移,但通常最好使用极坐标(假设为圆)。也就是说,使用++(<start angle>-180:<half the linewidth>)(在本例中(0:0.5mm))。

相关内容