我想制作一个表示箭头总和的图表。
我对 tikz 不太熟悉,所以我想知道这是否可行。我的第一个想法是这样的:
\documentclass{article}
\usepackage[utf8]{inputenc}
\begin{document}
\begin{tikzpicture}[]
\draw[->,thick] (0,0) -- (0:1cm) node[inner sep=0pt, outer sep=0pt] (a) {};
\draw[->,thick] (a.50) -- (50:1cm) node[inner sep=0pt, outer sep=0pt] (c) {};
\draw[->,thick] (c.90) -- (90:1cm) node[inner sep=0pt, outer sep=0pt] (d) {};
\draw[->,thick] (d.130) -- (130:1cm) node[inner sep=0pt, outer sep=0pt] (e) {};
\draw[->,thick] (e.160) -- (160:1cm) node[inner sep=0pt, outer sep=0pt] (f) {};
\end{tikzpicture}
\end{document}
我有两个问题:
首先,箭的长度不一致(相同)。
其次,我最终必须绘制大量具有任意角度的箭头。我想知道是否有办法编写一个循环,根据给定的一组角度自动绘制箭头。
答案1
看看,这是否是你在寻找的:
图片用以下代码绘制:
\documentclass[border=3mm,
tikz,
preview]{standalone}
\begin{document}
% improved original code
\begin{tikzpicture}[->,thick]
\draw (0,0) -- (0:1cm) coordinate (a);
\draw (a) -- (50:1cm) coordinate (c);
\draw (c) -- (90:1cm) coordinate (d);
\draw (d) -- (130:1cm) coordinate (e);
\draw (e) -- (160:1cm) coordinate (f);
\end{tikzpicture}
% use of loop
\begin{tikzpicture}[red,->,thick]
\coordinate (a0) at (0,0);
\foreach \angle [count=\i from 0, count=\j from 1] in {0, 50, 90, 130, 160}
\draw (a\i) -- (\angle:1cm) coordinate (a\j);
\end{tikzpicture}
\end{document}
以上代码与您的代码不同之处在于:
使用坐标代替节点。这样,前一个箭头和星形箭头的末端之间的间隙就消失了,代码要短得多,节点的锚点,新箭头的起点都是多余的(坐标只有一个锚点:它自己)
在带有循环的解决方案中,循环中的花括号宏收集了位于半径为 1cm 的圆上的坐标角度,箭头在此处结束。添加的计数器用于指示先前坐标名称和新坐标名称。