了解如何在 tikz 中旋转箭头

了解如何在 tikz 中旋转箭头

我看过关于箭头旋转的帖子,其中一篇是我写的。但是,我不知道自己该怎么做。例如,我正在制作一张霍曼转移的图片,在轨道上我想要三角形箭头指向逆时针方向,转移上则是“v”形箭头。

本部分已完成:

My goals is to put on the outer orbit 2 of the triangle arrows: one at 30 degrees and the other at 210 degrees.

The inner orbit 2 triangular arrows at 135 and 315 degrees.

对于 Hohmann 转移,我想放置 2 个箭头:一个箭头位于曲线的 40% 左右,另一个箭头位于曲线的 70% 左右。但是,我也不确定如何创建一个在两个轨道之间并到达 (-3,0) 的圆弧。我尝试了 arc 命令,但那只是猜测,而且看起来不太好看。

由于某种原因,霍曼转移中只显示一个箭头。我指定为 0.15 和 0.35。

\documentclass[11pt]{article} 
\usepackage{tikz, tikz-qtree,kurier, pgfplots} 
\usetikzlibrary{arrows, decorations.markings, calc, fadings, decorations.pathreplacing, patterns, decorations.pathmorphing, positioning}
\begin{document}
\begin{center}
   \begin{tikzpicture}[line join = round, line cap = round, >=triangle 45]
     \filldraw[orange!60!yellow!50!red, opacity = .75] (0,0) circle (.25cm);
     \draw (0,0) -- (4,0);
     \draw (0,0) -- (3,3);
     \begin{scope}[decoration = {markings, mark = at position 0.0416 with {\arrow{>}}, mark = at
     position 0.58333 with {\arrow{>}}, }]
     \draw[postaction = decorate] (0,0) circle (3cm);
   \end{scope}
   \begin{scope}[decoration = {markings, mark = at position 0.375 with {\arrow{>}}, mark = at
     position 0.875 with {\arrow{>}}, }]
     \draw[postaction = decorate] (0,0) circle (1.5cm);
   \end{scope}
     \filldraw[red] (2.12132,2.12132) circle (.075cm);
   \begin{scope}[decoration = {markings, mark = at position 1 with {\arrow{>}}, }]
     \draw[postaction = decorate] (1,0) arc (0:45:1cm) node[scale = .75, fill = white,
     inner sep = .05cm, circle] at (.5,.2) {$\alpha$};
   \end{scope}
   \begin{scope}[decoration = {markings, mark = at position 0.15 with {\arrow{>}}, mark = at
     position 0.35 with {arrow{>}}, }]
     \clip (-3,0) rectangle (1.5,3);
     \draw[postaction = decorate] (-.75,0) ellipse (2.25cm and 2.4cm);
   \end{scope}
   \draw[fill = white] (-3,0) circle (.075cm);
   \filldraw[top color = green!75!blue, bottom color = blue!40!green] (1.5,0) circle (.15cm);
   \end{tikzpicture}
\end{center}
\end{document}

答案1

您可以使用椭圆半径和起始停止角度来使用圆弧。我也做了一些清理。

\documentclass[tikz]{standalone} 
\usetikzlibrary{arrows, decorations.markings}
\begin{document}

   \begin{tikzpicture}[>=triangle 45,
                       mydeco/.style = {decoration = {markings, 
                                                       mark = at position #1 with {\arrow{>}}}
                                       }
                      ]
     \filldraw[orange!60!yellow!50!red, opacity = .75] (0,0) circle (.25cm);
     \draw (0,0) -- (4,0);
     \draw (0,0) -- (3,3);
     \draw[postaction = {mydeco=0.0416 ,decorate}, 
           postaction = {mydeco=0.58333 ,decorate}] (0,0) circle (3cm);

     \draw[postaction = {mydeco=0.375 ,decorate}, 
           postaction = {mydeco=0.875 ,decorate}] (0,0) circle (1.5cm);

     \filldraw[red] (2.12132,2.12132) circle (.075cm);
     \draw[->] (1,0) arc (0:45:1cm) 
                       node[fill = white,inner sep = .05cm] at (.5,.2) {$\scriptstyle\alpha$};


     \draw[postaction = {mydeco=0.15 ,decorate}, 
           postaction = {mydeco=0.35 ,decorate}] (0:1.5) arc (0:180:2.25cm and 2.4cm);

   \draw[fill = white] (-3,0) circle (.075cm);

   \filldraw[top color = green!75!blue, bottom color = blue!40!green] (1.5,0) circle (.15cm);

   \end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容