我想使用看起来像的箭头triangle 45
,但由于我的技术背景,我想让开角更小(并且相对于线宽整体更小)。
我的 MWE 尝试通过使用装饰和选项来实现这scalebox
一点scale
,但是每当线不在原点轴上时,这种方法就会歪斜并移动箭头(见红色箭头)。
\documentclass[10pt,border=1mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{%
arrows,
decorations,
decorations.markings,
decorations.text,
arrows.meta}
\tikzset{
arrow/.style={decoration={markings,mark=at position 1 with
{\scalebox{1}[0.5]{\arrow[scale=0.5]{triangle 45}}}},postaction={decorate},shorten >=1.5 pt}
}
\begin{document}
\begin{tikzpicture}
\draw[arrow] (0,0) -- (1,0);
\draw[arrow,red] (0,-.5) -- (1,-.5);
\draw[arrow,red] (0,0) -- (-.7,-.7);
\end{tikzpicture}
\end{document}
对于我想要的箭头,有没有什么简单的解决方案?
答案1
如果您在这样的标记定义中使用绘制命令,坐标系将自动“沿路径”对齐。因此,您可以像以下示例一样定义它。样式arrow
有一个可选参数,可以缩放箭头尖端。
代码
\documentclass[10pt,border=1mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\tikzset{
arrow/.style={decoration={markings, mark=at position 1 with
{\fill(-0.09*#1,-0.03*#1) -- (0,0) -- (-0.09*#1,0.03*#1) -- cycle;}}, postaction={decorate}},
arrow/.default=1
}
\begin{document}
\begin{tikzpicture}[scale=4]
\draw[arrow] (0,0) -- (1,0);
\draw[arrow=1,red] (0,-.5) -- (1,-.5);
\draw[arrow=10,red] (0,0) -- (-.7,-.7);
\end{tikzpicture}
\end{document}
输出
答案2
如果您只是想改变角度,最简单的方法是使用库scale width
的键arrows.meta
:
\documentclass[10pt,border=1mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}
\draw[->,>={Triangle[scale width=1.75]}] (0,0) -- (1,0);
\draw[->,red,>={Triangle[scale width=0.15]} ] (0,-.5) -- (1,-.5);
\draw[->,red,>={Triangle[scale width=1]} ] (0,0) -- (-.7,-.7);
\end{tikzpicture}
\end{document}