我希望你一切都好。我怎样才能将短线定义为节点形状?只有一些定义的形状,如圆形或矩形。
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}
当然你也可以用edge
s来画线。
如果你真的想使用节点,你可以这样做
\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}