圆周运动

圆周运动

我正在尝试绘制三个与圆相切的矢量,如下所示。 在此处输入图片描述

是否可以使用 \foreach 在圆周上复制一个向量?如果可以,有人能帮我画出这幅图吗?

答案1

这是使用以下方法绘制圆+矢量的另一种方法元帖子luamplib. 编译lualatex(假设您有可用的 TeX Gyre 数学字体)。

在此处输入图片描述

\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\usepackage{unicode-math}
\setmathfont{TeX Gyre Termes Math}
\begin{document}
\mplibtextextlabel{enable}
\begin{mplibcode}
beginfig(1);

    path C, vv, aa, oo;
    C = fullcircle scaled 4cm;

    linejoin := 0;
    linecap := 0;

    for t=0 upto 2:
      p := 8/3t+2;
      drawarrow subpath (p-4/3,p+4/3) of C withcolor .3[blue,white];

      vv := (origin -- unitvector(direction p of C) scaled 2cm)            shifted point p of C;
      aa := (origin -- unitvector(direction p of C) scaled 1cm rotated 90) shifted point p of C;
      drawarrow vv withpen pencircle scaled 2 withcolor .67 green;
      drawarrow aa withpen pencircle scaled 2 withcolor (red+1/2green);

      label("$\vec{v}$", unitvector(direction 3/4 of vv) rotated -90 scaled 7 shifted point 3/4 of vv); 
      label("$\vec{a}$", unitvector(direction 2/3 of aa) rotated +90 scaled 7 shifted point 2/3 of aa); 

      fill fullcircle scaled 5 shifted point p of C;
    endfor

    oo = subpath(3.4,4.2) of C scaled 1.12;
    drawarrow oo withpen pencircle scaled 4 withcolor .8 white;
    label.lft("$\omega$", point 2/3 of oo);

endfig;
\end{mplibcode}
\end{document}

笔记

  • 一条路径上有 8 个“点” fullcircle,因此point 2 of C12 点钟方向也是如此,等等。

  • direction x of C给出切向量point x of C

  • unitvector将返回的对scaled...包裹起来,可以direction让你正确控制大小

  • 将 设置linejoinlinecap0 可以得到漂亮而锐利的箭头,尽管使用的笔很大。

答案2

以下是使用 TikZ 的解决方案:

在此处输入图片描述

\documentclass{article}

\usepackage[latin1]{inputenc}              
\usepackage[T1]{fontenc}

\usepackage{tikz}

\usetikzlibrary{positioning,calc}
\usepackage{esvect}

\begin{document}


\begin{tikzpicture}

\def\rr{3cm}
\def\nn{3}
\draw[thick, blue] (0,0) circle (\rr);
\foreach \aa in {1,2,...,\nn}{
\begin{scope}[rotate={\aa*360/\nn+15}]
\draw [-latex, green, ultra thick] (0:\rr) coordinate(dd\aa)--++(0,1.5cm)coordinate(aa\aa)node[right]{$\vv{v}$};
\draw [-latex, orange, ultra thick] (0:\rr) --++(-1cm,0) node[right]{$\vv{a}$};
\draw [fill=black] (0:\rr) circle (0.1);
\end{scope}
\draw[ultra thick, gray,-latex] (-15:{\rr+0.5cm}) to [bend right=15] node[right]{$\omega$}(15:{\rr+0.5cm});
}

\def\rr{5cm}
\def\nn{5}
\draw[thick, blue] (0,0) circle (\rr);
\foreach \aa in {1,2,...,\nn}{
\begin{scope}[rotate={\aa*360/\nn+15}]
\draw [-latex, green, ultra thick] (0:\rr) --++(0,{5/3*1.5cm})node[right]{$\vv{v}$};
\draw [-latex, orange, ultra thick] (0:\rr) --++(-1cm,0) node[right]{$\vv{a}$};
\draw [fill=black] (0:\rr) circle (0.1);
\end{scope}
}

\draw (0,0) --(aa3)coordinate[pos=2](ff) -- (ff);
\draw (0,0) -- (dd3)coordinate[pos=2](ff) -- (ff);


\end{tikzpicture}

\end{document}

答案3

除了灰色阴影箭头外,没有在现有答案中添加大量内容。

\documentclass[tikz,border=5]{standalone}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[>=Triangle]
\shade [top color=white, bottom color=gray!50, middle color=white]
  (120:8/3) arc (120:190:8/3) node [black, near end, left] {$\omega$}
  -- (190:25/9) -- (200:15/6) -- (190:20/9) -- (190:7/3)
  arc (190:120:7/3) -- cycle;
\foreach \i in {90, 210, 330}{
  \draw [->, thick, blue!50!cyan] (\i-65:2) arc (\i-65:\i+60:2);
  \tikzset{shift={(\i:2)}, rotate=\i+180}
  \draw [->, very thick, orange] (0,0) -- (1,0)
    node [black, near end, anchor=\i+90] {$\vec a$};
  \draw [->, very thick, green!50!black] (0,0) -- (0,-2)
    node [black, near end, anchor=\i+180] {$\vec v$};
  \fill circle [radius=1/10];
}
\end{tikzpicture}
\end{document} 

在此处输入图片描述

答案4

另一个解决方案是使用 PSTricks。用它进行编译latex-dvips-ps2pdf是最快的方法。

\documentclass[pstricks,preview]{standalone}
\usepackage{pst-node}

\def\Orbit#1{%
\begin{pspicture}[arrows=->,arrowscale=2,dimen=m](-6,-6)(6,6)
    \psarc(0,0){4}{0}{120}\psarc(0,0){4}{120}{240}\psarc(0,0){4}{240}{0}\pscircle{4}
    \psarc[linecolor=gray](0,0){4.75}{50}{70}\rput(5.25;60){$\omega$}
    \pnodes(0,0){O}(4;#1){A}([nodesep=2]{O}A){R}([offset=-2]{O}A){T}
    \pscircle*[linecolor=green](A){6pt}
    \pcline[linecolor=blue](A)(R)\naput{$\vec{a}$}
    \pcline[linecolor=red](A)(T)\nbput{$\vec{v}$}
\end{pspicture}}

\begin{document}
\foreach \x in {0,30,...,330}{\Orbit{\x}}
\end{document}

在此处输入图片描述

相关内容