我是否必须明确声明这一点?

我是否必须明确声明这一点?

我已经定义了2个节点crectcelli,我想从 到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 中的括号。

相关内容