使用 tikz 进行相量求和

使用 tikz 进行相量求和

我想制作一个表示箭头总和的图表。

我对 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 的圆上的坐标角度,箭头在此处结束。添加的计数器用于指示先前坐标名称和新坐标名称。

相关内容