Tikz:箭头尖端与节点重叠

Tikz:箭头尖端与节点重叠

我目前正在使用 GeoGebra 生成 Tikz 代码。所以我的有向边写成类似

\begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
\clip(0.36,0.28) rectangle (6.72,3.82);

\draw [->] (5.9,0.74) -- (2.26,2.76);

\fill [color=qqwwqq] (2.26,2.76) circle (2pt);
\draw[color=qqwwqq] (2.56,3.02) node {$y$};

\end{tikzpicture}

除了箭头尖端和节点略微重叠(见图)之外,它几乎完全满足了我的要求。

在此处输入图片描述

一种解决方案是手动将线段缩短一点。但是,对于包含大量有向边的较大图来说,这可能不是最明智的方法。

有什么方法可以轻松解决这个问题?例如,通过自动稍微缩短每个边,使箭头尖端结束于圆的起点?

答案1

您绝对可以通过以下方式将所有箭头缩短一个点半径

\tikzset{shorten >= 2pt}

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
\usepackage{xcolor}
\colorlet{qqwwqq}{green!50!black}

\begin{document}

\usetikzlibrary{arrows}
\begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
\tikzset{shorten >= 2pt}

\clip(0.36,0.28) rectangle (6.72,3.82);

\draw [->] (5.9,0.74) -- (2.26,2.76);

\fill [color=qqwwqq] (2.26,2.76) circle (2pt);
\draw[color=qqwwqq] (2.56,3.02) node {$y$};

\end{tikzpicture}

\end{document}

答案2

将节点放置在具有形状和标签信息的所需坐标处,并为其命名(我使用了Y)。然后使用绘制到节点的线,而不是坐标。如果您希望箭头和圆圈之间有一点空间,\draw [->] (5.9,0.74) -- (Y);可以增加。outer sep

在此处输入图片描述

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{arrows}

\begin{document}

\begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]

\node[circle, inner sep=1.5pt, outer sep=0, fill=green!30!black, label={[green!30!black]above right:$y$}] at (2.25,2.75) (Y){};
\draw [->] (6,0.75) -- (Y);

\end{tikzpicture}
\end{document}

相关内容