我使用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
没有为除 之外的其他连接定义--
。