Tikz:创建窄箭头/不成比例的缩放

Tikz:创建窄箭头/不成比例的缩放

我想使用看起来像的箭头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}

在此处输入图片描述

相关内容