连接点到节点的路径无法到达实际节点

连接点到节点的路径无法到达实际节点

这可能是一个非常简单的问题,可能已经在这里被问到了。我只是不知道如果有的话关键词是什么。让我先举个例子:

\documentclass[border=10pt,varwidth]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc, shapes, backgrounds}

\begin{document}

\begin{tikzpicture}
\coordinate (P) at (0,0);
\fill (P) circle[radius=0.05] node[below]{P};
\node (Q) at (2,0) {};
\fill (Q) circle[radius=0.05] node[below]{Q};
\draw (P) -- (Q) node[pos=0.4] (A) {};
\fill (A) circle[radius=0.05] node[below]{A};
\draw (1,1) -- (A);
\end{tikzpicture}

\end{document}

因此,我以不同的方式指定两个点 P 和 Q:我对 P 使用坐标,对 Q 使用节点。结果如下: 结果

当在 P 和 Q 这两个点之间画一条线段时,该线段未能到达实际点 Q。

我可以使用坐标来指定 Q。只是有些情况下我必须使用节点来指定某个地方中间的点(比如点 A)。

我如何绘制实际上分别到达点 Q 和 A 的线?

谢谢!

答案1

正如@AndrewStacey写道,您可以很好地定义coordinate路径中间具有形状的节点。否则,只需确保节点具有minimum size=0pt, inner sep=0pt, outer sep=0pt“连接线”即可到达其中心。

下面的代码针对您的示例中的节点A和说明了这一点Q。我将两个相应的\fill命令更改为,\draw以便我们可以看到“连接线”确实到达了这些节点的中心。

\documentclass[border=1mm]{standalone}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}[foo/.style={minimum size=0pt, inner sep=0pt, outer sep=0pt}]
  \coordinate (P) at (0,0);
  \fill (P) circle[radius=0.05] node[below] {P};
  \node[foo] (Q) at (2,0) {};
  \draw (Q) circle[radius=0.05] node[below] {Q};
  \draw (P) -- (Q) node[pos=0.4, foo] (A) {};
  \draw (A) circle[radius=0.05] node[below]{A};
  \draw (1,1) -- (A);
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容