Tikz 2 部分线用于标记项目

Tikz 2 部分线用于标记项目

我正在寻找一种在 Tikz 中构造线的方法(附图显示了两种不同的可能性),而不使用两个线段(水平和对角线)连接点处的节点。我可以为每个位置制作一个节点,但更希望使用可重复使用的解决方案,该解决方案只会改变:起始和结束位置以及角度。有没有已经这样做的东西?类似于用于在装配体中标记零件的气球之类的东西?

在此处输入图片描述

答案1

你可以用这个作为起点。我定义了两种样式/-(先对角线,然后水平)和-d(先水平,然后对角线):

在此处输入图片描述

代码:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}

\tikzset{
  /-/.style={
    to path={ (\tikztostart) --
      ( {$ (\tikztostart)!#1!(\tikztotarget) $} |-\tikztotarget)  -- 
      (\tikztotarget) \tikztonodes
    }
  },
  /-/.default=0.5,
  -d/.style={
    to path={ (\tikztostart) --
      ( {$ (\tikztostart)!#1!(\tikztotarget) $} |-\tikztostart)  -- 
      (\tikztotarget) \tikztonodes
    }
  },
  -d/.default=0.5
}

\begin{document}

\begin{tikzpicture}

\draw[/-,cyan,line width=1pt]
  (-4,0) to (-1,2) node[right] {A};
\draw[-d,magenta,line width=1pt]
  (-5,-2) node[left] {B} to (-1,0);

\coordinate (a) at (0,0);
\coordinate (b) at (3,2);
\coordinate (c) at (5,-2);

\draw[/-]
  (a) node[left] {a} to  (b) node[right] {b};
\draw[/-=0.25]
  (a) to (b);
\draw[/-=0.75]
  (a) to (b);

\draw[/-]
  (a) to (c) node[right] {c};
\draw[/-=0.25]
  (a) to (c);
\draw[/-=0.75]
  (a) to (c);

\begin{scope}[xshift=6cm]
\coordinate (a) at (0,0);
\coordinate (b) at (3,2);
\coordinate (c) at (5,-2);

\draw[-d]
  (a) node[left] {a} to  (b) node[right] {b};
\draw[-d=0.25]
  (a) to (b);
\draw[-d=0.75]
  (a) to (b);

\draw[-d]
  (a) to (c) node[right] {c};
\draw[-d=0.25]
  (a) to (c);
\draw[-d=0.75]
  (a) to (c);
\end{scope}

\end{tikzpicture}

\end{document}

相关内容