我已经定义了2个节点crect
和celli
,我想从 到crect
右边的点画一条线celli
,但以下方法似乎不起作用:
\draw[->] (crect) -- [right=1cm of celli];
那么我必须通过 明确声明这一点吗\node
?有没有人有解决方案让它在一行中完成?
答案1
您可以使用该calc
库及其语法进行坐标计算。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\node (A) at (1,1) {A};
\node (B) at (3,1) {B};
\draw (A) -- ($(B) + (1cm,0)$);
\end{tikzpicture}
\end{document}
答案2
您还可以指定所需的坐标。在这种情况下[x|y]shift
不需要库。calc
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (A) at (1,1) {A};
\node (B) at (3,1) {B};
\draw[red] (A) -- ([xshift=1cm]B.center);
\draw[green] (A) -- ([yshift=1cm]B.center);
\draw[blue] (A) -- ([shift={(1cm,1cm)}]B.center);
\end{tikzpicture}
\end{document}
您需要使用B.center
(或任何其他节点的坐标),而不仅仅是其名称。还请注意 shift 中的括号。