为什么 pos 在循环中的表现与在其他路径段中的表现不同?

为什么 pos 在循环中的表现与在其他路径段中的表现不同?

我使用pos来对齐路径上的节点。这很好用,即使使用 这样的特殊段也是如此-|。但我在使用 时遇到了一个问题cycle。 似乎 根本cycle pos不起作用。这对我来说没问题,但我甚至没有收到错误。所以也许我做错了什么或没有用正确的方式看待它?

\documentclass[tikz]{standalone}

\begin{document}
\begin{tikzpicture}
    \draw (0,0) -| ++(2,2) -| ++(-2,-2) node[pos=0.5]{O};
    
    \draw (3,0) -| ++(2,2) -| cycle node[pos=0.5]{X};
    
\end{tikzpicture}
\end{document}

答案1

如何解决

在线上放置节点有两种方法:明确地就像你在代码中所做的那样,或者隐含地,就像我在以下代码中所做的那样。使用隐式方法时,您可以省略pos=0.5,因为它是默认值。仍然可以pos=x在那里设置任何其他值。使用隐式方法,它可以按预期工作。

笔记:对于水平/垂直线到操作|--|位置0.5正好是角点,正如你所见\draw (3,0) -| ++(2,1) -| node{X} cycle;

代码

\documentclass[tikz, margin=3mm]{standalone}

\begin{document}
\begin{tikzpicture}
    \draw (0,0) -| ++(2,2) -| node{O} ++(-2,-2);
    %\draw (3,0) -| ++(2,2) -| node[pos=0.5]{X} cycle;
    \draw (3,0) -| ++(2,2) -| node{X} cycle;
\end{tikzpicture}
\end{document}

结果

在此处输入图片描述

方法为什么

使用时不会出现问题-- cycle node[midway]{foo}。似乎cycle只有连接才正确定义--。在tikz 代码有一条评论:

% Syntax for cycle:
% -- cycle

因此问题似乎在于,pos和的组合cycle没有为除 之外的其他连接定义--

相关内容