在TikZ 中绘制大于 360º 的角度

在TikZ 中绘制大于 360º 的角度

在教授三角学时,有时用某种“螺旋弧”来表示大于 360º 的角度很有用。例如:

角度

图中的-440º角度。

我的问题是:

我怎样才能在 TikZ 中很好地做到这一点?

我可以通过使用几个连续的来做到这一点arcs,但我想知道是否有更优雅的解决方案。

答案1

 \documentclass[11pt]{scrartcl}
 \usepackage{tikz}
 \usetikzlibrary{arrows}

 \begin{document} 

 \newcommand\bigangle[2][]{% 
    \draw[->,domain=0:#2,variable=\t,samples=200,>=latex,#1]
      plot ({(\t+#2)*cos(\t)/(#2)},
           {(\t+#2)*sin(\t)/(#2)}) node[right=.5cm] {$#2^\circ$}
        ;}

 \begin{tikzpicture}
 \draw [thick] ( 0,0) -- (3,0);
 \draw [thick] ( 0,0) -- (0,3); 
 \draw [red,thick] ( 0,0) -- (400:3); 
 \bigangle[blue,dashed]{400}      
 \end{tikzpicture}
 \end{document}

在此处输入图片描述

在此处输入图片描述

答案2

杰克的方法可能更简单,但在这里我调整了螺旋的标准参数方程,并添加了偏移量,以便螺旋不会从原点开始,从而得到:

在此处输入图片描述

笔记:

  • 分母中的440是为了使图形标准化,以便弧在 ay=1 处结束。
  • 极坐标方程应该能得到与更简单方程相似的结果。
  • 棕色线有问题(尽管它处于正确的位置),因为它没有在我认为应该结束的地方结束,但这与产生螺旋无关。

代码:

\documentclass{article}
\usepackage{pgfplots}

\newcommand*{\Offset}{360}%
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=-2.5,xmax=2.5,ymin=-2.5,ymax=2.5, axis lines=center]
    \addplot[blue,densely dashed,domain=0:440,samples=200,-latex] 
        ({(x+\Offset)*cos(x+\Offset)/(440+\Offset)},
         {(x+\Offset)*sin(x+\Offset)/(440+\Offset)});

    % Show the 440 degree angle
    \pgfmathsetmacro{\XValue}{1.0}%
    \pgfmathsetmacro{\YValue}{\XValue*tan(440)}%
    \draw [brown, thick] (axis cs: 0,0) -- (axis cs: \XValue,\YValue);
\end{axis}
\end{tikzpicture}
\end{document}

相关内容