线从节点旁边开始(而不是在节点处)

线从节点旁边开始(而不是在节点处)

我想用一条(带箭头的)线连接由节点定义的两个点。以下是我的分解代码:

\begin{tikzpicture}[]
 \node (oe) at (0,0)[]{};
 \node (x) at (2,0)[]{};
 \draw[dashed, black] (oe) -- +(0,1) node[red](xstart){.};
 \draw[dashed, black] (x) -- +(0,1)  node[red](xend){.};
 \draw[<->,black] (xstart) -- (xend) node[above left]{$x$};
\end{tikzpicture}

显示为:

不工作

我不明白为什么这条线没有连接两个红点。

感谢您的帮助!

解决方案(感谢“js bibra”,见下文):向节点添加选项“坐标”

\draw[dashed, black] (oe) -- +(0,1) node[red, coordinate](xstart){.};

答案1

在此处输入图片描述

    \draw[dashed, black] (oe) -- +(0,1) node[red, coordinate](xstart){.};
    \draw[dashed, black] (x) -- +(0,1)  node[red, coordinate](xend){.};
    

或者

将定义代码更改为

    \draw[dashed, black] (oe) -- +(0,1) node[draw=none, coordinate,circle, fill=red, inner sep=4pt,](xstart){};

会给

在此处输入图片描述

答案2

nodes其内容周围具有特定的默认大小。查看将选项draw应用于节点的代码:

\documentclass[tikz, border=2mm]{standalone}

\begin{document}
\begin{tikzpicture}[]
 \node[draw] (oe) at (0,0)[]{};
 \node[draw] (x) at (2,0)[]{};
 \draw[dashed, black] (oe) -- +(0,1) node[draw, red](xstart){.};
 \draw[dashed, black] (x) -- +(0,1)  node[draw, red](xend){.};
 \draw[<->,black] (xstart) -- (xend) node[above left]{$x$};
\end{tikzpicture}
\end{document}

在此处输入图片描述

节点之间的线终止于其(可见或不可见)边界。

如果在节点中心之间画一条线,就可以避免这种行为:

\documentclass[tikz, border=2mm]{standalone}

\begin{document}
\begin{tikzpicture}[]
 \node[draw] (oe) at (0,0)[]{};
 \node[draw] (x) at (2,0)[]{};
 \draw[dashed, black] (oe) -- +(0,1) node[draw, red](xstart){.};
 \draw[dashed, black] (x) -- +(0,1)  node[draw, red](xend){.};
 \draw[<->,black] (xstart.center) -- (xend.center) node[above left]{$x$};
\end{tikzpicture}
\end{document}

在此处输入图片描述

nodes或用coordinates类似于节点但没有任何维度和内容的来替换。

\documentclass[tikz, border=2mm]{standalone}

\begin{document}
\begin{tikzpicture}
 \draw[dashed, black] (0,0) coordinate (oe) -- +(0,1) coordinate (xstart);
 \draw[dashed, black] (2,0) coordinate (x) -- +(0,1) coordinate (xend);
 \fill[red] (xstart) circle (1pt);
 \fill[red] (xend) circle (1pt);
 \draw[<->,black] (xstart.center) -- (xend.center) node[above left]{$x$};
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容