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