是什么原因导致线路发生位移?

是什么原因导致线路发生位移?

是什么原因导致线路发生位移?

\documentclass[tikz,border=1mm]{standalone}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}[dot/.style={circle,inner sep=1pt,fill,label={#1},name=#1}]

\draw (-1,-1) grid (1,1);
\path[fill=black] (0,0)  circle [radius=1pt] node[below] (A) {$A$};
\node[dot=B] at (1,1){};
\draw (A) -- (B);
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案1

该线实际上没有位移,而是绘制在您要求的位置。当您说 时node[below] (A) {$A$},tikz 放置一个矩形形状(不可见)的节点,其大小为数学符号$A$加上inner sep,它将其放置在below坐标(0,0)。然后,\draw (A) -- (B);命令只是将那个不可见的矩形连接到B dot。这是您的原始代码所做的(此处使矩形可见,以了解我上面的意思):

在此处输入图片描述

现在,使用coordinate(A)而不是节点,并且节点文本成为坐标的标签,您将得到以下内容:

在此处输入图片描述

还要注意,并不dot/.style等于circle [radius=1pt],前者比后者大.4pt,即默认线宽,因此您需要将其加.4pt回来以获得相同的半径。

\documentclass[tikz,border=1mm]{standalone}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}[dot/.style={circle,inner sep=1pt,fill,label={#1},name=#1}]

\draw (-1,-1) grid (1,1);
\path[fill=black] (0,0)coordinate [label=below:$A$](A) circle [radius=1.4pt] ;
\node[dot=B] at (1,1){};
\draw[shorten >=-1pt, shorten <=-1pt] (A) -- (B);
\end{tikzpicture}

\end{document}

相关内容