如何在 Tikz 中制作自定义箭头,在三角形 45 前有一个垂直条?我还想将此解决方案调整为正方形、空心正方形等前面的条。
例如,假设箭头从 (0,0) 指向 (10,0),那么箭头将是一个填充三角形,大致为 (9,1) -- (10, 0) -- (9, -1)。我想添加一个条形,它是一个填充矩形,大致为 (8.5,1) -- (8.6, 1) -- (8.6, -1) -- (8.5, -1)。
我想我可以用pgfdeclarearrow
某种方式来声明一个条形图,然后pgfarrowsdeclarecombine*
将它与现有的箭头结合起来?
答案1
使用3.0arrows.meta
版库pgf
(2013 年 12 月发布)时,组合箭头非常简单,可以提前完成或在线完成:
\documentclass[border=0.125cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\tikzset{%
tipA/.tip={Bar[sep]Triangle[open,angle=45:4pt]},
tipB/.tip={Bar[sep]Square[open]}
}
\begin{document}
\begin{tikzpicture}
\draw [-tipA] (0,0) -- +(1,0);
\draw [-tipB] (0,.5) -- +(1,0);
% in-line
\draw [-{Bar[sep]Triangle[angle=45:4pt]}] (0,1) -- +(1,0);
\draw [-{Bar[sep]Square[]}] (0,1.5) -- +(1,0);
\end{tikzpicture}
\end{document}
只为托马斯:
\documentclass[border=0.125cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{fadings}
\usetikzlibrary{arrows.meta}
\tikzset{%
tipA/.tip={Bar[sep]Triangle[open,angle=45:4pt]},
tipB/.tip={Bar[sep]Square[open]},
legs/.tip={Straight Barb[reversed]},
long legs/.tip={Straight Barb[reversed,angle=30:4pt]},
hat/.tip={Bracket[reversed,sep=-1pt]Rectangle[]},
arms/.tip={Bar[sep]},
head/.tip={Circle[]},
skirt/.tip={Triangle[reversed]},
arms down/.tip={Straight Barb[angle=35:4pt]},
long hair/.tip={Arc Barb[length=9pt,width=6pt,sep=-9pt]Arc Barb[length=9pt,width=5pt,sep=-9pt]Arc Barb[length=9pt,width=7pt]}
}
\begin{document}
\begin{tikzpicture}[x=0.5cm,y=0.5cm]
\draw [legs-tipA] (0,0) -- +(0,1);
\draw [legs-tipB] (1,0) -- +(0,1);
% in-line
\draw [legs-{Bar[sep]Triangle[angle=45:4pt]}]
(2,0) -- +(0,1);
\draw [legs-{Bar[sep]Square[]}]
(3,0) -- +(0,1);
\draw [legs-{arms[]head[sep=-1pt]hat[]}]
(4,0) -- +(0,1);
\draw [{long legs[]skirt[sep=-2pt]}-{arms down[]head[sep=-8.5pt]long hair[]}]
(5,0) -- +(0,1);
\end{tikzpicture}
\end{document}