当我尝试\node
使用语法中的相对坐标时:(x,y)++(a:r)
它给了我一个错误,但是当我只指定第二个坐标时,就像++(a:r)
第(x,y)
一个坐标隐含一样(0,0)
。我希望我可以使用相对坐标将节点放置在某个点上。这是我的代码:
\documentclass[12pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
% Triangle ABC
\draw (0,0)--++(60:2)--++(-60:2)--cycle;
\foreach \c in {(0,0),++(60:2),++(0:2)}
\draw[fill] \c circle (.05);
\node [above] at ++(60:2) {\( A \)};
\node [right] at ++(0:2) {\( B \)};
\node [left] at (0,0) {\( C \)};
% Triangle EFG
\draw (4,0)--++(60:2)--++(-60:2)--cycle;
\foreach \c in {(4,0),(4,0)++(60:2),(4,0)++(0:2)}
\draw[fill] \c circle (.05);
\node [above] at ++(60:2) {\( E \)};
\end{tikzpicture}
\end{document}
E
如果我能将其点写为 ,那么放置节点将非常容易(4,0)++(60:2)
。如何在 中使用相对坐标指定它node
?
答案1
(0,0)
如果没有事先指定,则相对位置确实从 开始\pgfpathmoveto
。基本上, 的规则++(a)
是:从此路径表达式的最后一个位置a
向前移动,无论是按组件++(x,y)
还是按角度移动,如++(a:r)
。不过,您确实需要该锚点。
由于含义是从 开始,因此(0,0)
您应该考虑使用带有移位的范围或简单地使用\path (4,0) node[above] at (60:6) {}
。
一种选择:
\documentclass[12pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
% Triangle ABC
\draw (0,0)--++(60:2)--++(-60:2)--cycle;
\foreach \c in {(0,0),++(60:2),++(0:2)}
\draw[fill] \c circle (.05);
\node [above] at ++(60:2) {\( A \)};
\node [right] at ++(0:2) {\( B \)};
\node [left] at (0,0) {\( C \)};
% Triangle EFG
\draw (4,0)--++(60:2)--++(-60:2)--cycle;
\foreach \c in {(4,0),(4,0)++(60:2),(4,0)++(0:2)}
\draw[fill] \c circle (.05);
\path (4,0) node [above] at ++(60:6) {\( E \)};
\end{tikzpicture}
\end{document}
另一个:
\documentclass[12pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
% Triangle ABC
\draw (0,0)--++(60:2)--++(-60:2)--cycle;
\foreach \c in {(0,0),++(60:2),++(0:2)}
\draw[fill] \c circle (.05);
\node [above] at ++(60:2) {\( A \)};
\node [right] at ++(0:2) {\( B \)};
\node [left] at (0,0) {\( C \)};
% Triangle EFG
\begin{scope}[shift={(4,0)}]
\draw (0,0)--++(60:2)--++(-60:2)--cycle;
\foreach \c in {(0,0),++(60:2),++(0:2)}
\draw[fill] \c circle (.05);
\path node [above] at ++(60:6) {\( E \)};
\end{scope}
\end{tikzpicture}
\end{document}