TikZ \draw 命令中的奇怪行为

TikZ \draw 命令中的奇怪行为

我试图复制这个数字盒子半填充颜色使用 TikZ。

(0,0)我从到画一个矩形(4,3)

我将两点定位(0,1)为 A 和(4,2)B。

当我连接点AB时,我期望线会接触矩形。但是连接两个点时会出现间隙。

在此处输入图片描述

我希望了解这种行为。

代码:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
  \draw (0,0) rectangle (4,3);

  \node (A) at (0,1) {};
  \node (B) at (4,2) {};

  \draw (A) -- (B);

\end{tikzpicture}
\end{document} 

答案1

因为你的道路连接了两个节点A) 和 (draw),而不是坐标本身。可以通过向节点添加选项来使其更清晰:

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \draw (0,0) rectangle (4,3);

  \node[draw] (A) at (0,1) {};
  \node[draw] (B) at (4,2) {};

  \draw (A) -- (B);

\end{tikzpicture}
\end{document} 

在此处输入图片描述

让我们添加一些文字以使其更加清晰:

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \draw (0,0) rectangle (4,3);

  \node[draw] (A) at (0,1) {A};
  \node[draw] (B) at (4,2) {B};

  \draw (A) -- (B);

\end{tikzpicture}
\end{document} 

在此处输入图片描述

那么如何解决呢?当然是加入坐标,有一个标准解决方案\coordinate

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \draw (0,0) rectangle (4,3);

  \coordinate (A) at (0,1);
  \coordinate (B) at (4,2);

  \draw (A) -- (B);

\end{tikzpicture}
\end{document} 

或者你可以直接获取坐标

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \draw (0,0) rectangle (4,3);

  \draw (0,1) -- (4,2);

\end{tikzpicture}
\end{document} 

如果您想保留节点:您应该使用坐标(<node name>中心):

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \draw (0,0) rectangle (4,3);

  \node (A) at (0,1) {};
  \node (B) at (4,2) {};

  \draw (A.center) -- (B.center);

\end{tikzpicture}
\end{document} 

或设置coordinate节点选项(建议格雷戈里·普利奥):

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \draw (0,0) rectangle (4,3);

  \node[coordinate] (A) at (0,1) {};
  \node[coordinate] (B) at (4,2) {};

  \draw (A) -- (B);

\end{tikzpicture}
\end{document}

以上四段代码的输出结果为:

在此处输入图片描述

相关内容