定义一条短线作为节点形状

定义一条短线作为节点形状

我希望你一切都好。我怎样才能将短线定义为节点形状?只有一些定义的形状,如圆形或矩形。

bnode/.style={shape=circle, draw=black, line width=2} 

答案1

我会用 来pic实现这一点。您可以给出特殊点,例如左、中、右锚点坐标,并使用键调整其外观。

\documentclass[tikz,border=3mm]{standalone}
\begin{document}
\begin{tikzpicture}[pics/line/.style={code={%
  \tikzset{Line/.cd,#1}
  \def\pv##1{\pgfkeysvalueof{/tikz/Line/##1}}% 
  \draw[pic actions] (-\pv{l}/2,0) coordinate (-left) -- 
    (\pv{l}/2,0) coordinate[pos=0.5] (-middle)  coordinate (-right);
    }},Line/.cd,l/.initial=1cm]
 \draw (0,0) pic(line1) {line} (4,0) pic[thick,blue,rotate=30] (line2){line={l=2cm}};
 \draw[red] (line1-middle) to[bend left] (line2-left);
\end{tikzpicture}
\end{document}

在此处输入图片描述

当然你也可以用edges来画线。

如果你真的想使用节点,你可以这样做

\documentclass[tikz,border=3mm]{standalone}
\begin{document}
\begin{tikzpicture}[line/.style 2 args={inner sep=0pt,append after command={
 (\tikzlastnode.west) edge[#2] (\tikzlastnode.east)},
 minimum width=#1},line/.default={1cm}{}]
 \draw (0,0) node[line](line1) {} (4,0) node[rotate=30,line={2cm}{thick,blue}] (line2){};
 \draw[red] (line1.center) to[bend left] (line2.west);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容