Tikz - 圆角矩形节点位置在中间开始箭头

Tikz - 圆角矩形节点位置在中间开始箭头

我画了这个简单的图表:

\documentclass[crop,tikz,convert={outext=.svg,command=\unexpanded{pdf2svg \infile\space\outfile}},multi=false]{standalone}

\usepackage{tikz}
\usetikzlibrary{positioning, matrix, arrows.meta, shapes.misc}

\begin{document}
  \begin{tikzpicture}[x=1cm,y=1.5cm]
    \tikzstyle{vertex} = [draw, rounded rectangle, minimum width=40pt, font=\fontsize{7}{10}\selectfont];
    \node[vertex] (A) at (0, 0) {CAC};

    \node[vertex] (C) at (2, 0.5) {AC$\$_1$};
    \node (D) at (2, -0.5) {};
    
    \draw[->, font=\fontsize{7}{10}\selectfont] (A) -- (C) node [midway, above] {$\$_1$};
    \draw[->, font=\fontsize{7}{10}\selectfont] (A) -- (D) node [midway, above] {$\$_3$};
  \end{tikzpicture}
\end{document}

这将产生以下输出:

错误的

但我会创造这样的东西:

在此处输入图片描述

答案1

所有节点的边界上都有锚点,可用作坐标。一般来说,各种罗盘方向(northnorth westwest等)都称为锚点,如果您愿意,也可以使用角度。某些节点形状有其他锚点。在有关库的章节中shapes,每个节点形状都有一个图表,告诉您锚点的位置。

使用节点锚点作为坐标的一般语法是(<nodename>.<anchor>)。因此,要从最右点绘制一条线A,请在绘制线的路径中使用,(A.east)而不仅仅是。例如(A)

\draw (A.east) -- (C.west);

对于向右下方移动的箭头,您可以尝试使用 的锚点north westD如果这还不够好,您可以将坐标稍微向上移动,如下所示:

([yshift=3pt]D.north west)

在此处输入图片描述

\documentclass[crop,tikz]{standalone}

\usepackage{tikz}
\usetikzlibrary{positioning, matrix, arrows.meta, shapes.misc}

\begin{document}
  \begin{tikzpicture}[x=1cm,y=1.5cm]
    \tikzstyle{vertex} = [draw, rounded rectangle, minimum width=40pt, font=\fontsize{7}{10}\selectfont];
    \node[vertex] (A) at (0, 0) {CAC};

    \node[vertex] (C) at (2, 0.5) {AC$\$_1$};
    \node (D) at (2, -0.5) {};
    
    \draw[->, font=\fontsize{7}{10}\selectfont] (A) -- (C) node [midway, above] {$\$_1$};
    \draw[->, font=\fontsize{7}{10}\selectfont] (A) -- (D) node [midway, above] {$\$_3$};
    
    \draw[->, red, font=\fontsize{7}{10}\selectfont] (A.east) -- (C.west) node [midway, above] {$\$_1$};
    \draw[->, red, font=\fontsize{7}{10}\selectfont] (A.east) -- ([yshift=3pt]D.north west) node [midway, above] {$\$_3$};
  \end{tikzpicture}
\end{document}

相关内容