我画了这个简单的图表:
\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
所有节点的边界上都有锚点,可用作坐标。一般来说,各种罗盘方向(north
、north west
、west
等)都称为锚点,如果您愿意,也可以使用角度。某些节点形状有其他锚点。在有关库的章节中shapes
,每个节点形状都有一个图表,告诉您锚点的位置。
使用节点锚点作为坐标的一般语法是(<nodename>.<anchor>)
。因此,要从最右点绘制一条线A
,请在绘制线的路径中使用,(A.east)
而不仅仅是。例如(A)
\draw (A.east) -- (C.west);
对于向右下方移动的箭头,您可以尝试使用 的锚点north west
,D
如果这还不够好,您可以将坐标稍微向上移动,如下所示:
([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}