TikZ 中如何定义圆弧?

TikZ 中如何定义圆弧?

关于如何计算弧的几个问题:

  1. 起始角度和终止角度似乎是相对于 y 轴定义的,但在 Tikz 手册中,它们是相对于 x 轴定义的。这是对的吗?

  2. 终止角是定义在 y(或 x)轴与传入路径之间,还是定义在 y(或 x)轴与端点以外的路径延伸之间?

  3. 从几何角度来说,仅提供起始角和终止角(以及半径)不足以明确定义圆弧。还有其他假设吗?例如:圆弧必须小于 180 度?或者圆弧必须始终逆时针弯曲?

答案1

\draw (x,y) arc (start:stop:radius);画弧

  • 与半径radius
  • 开始于(x,y)
  • 与中心(x-r*cos(start), y-r*sin(start))
  • 结束于(x-r*cos(start)+r*cos(stop), y-r*sin(start)+r*sin(stop))

例如,

 \draw[red] (0,0) arc (30:60:3);

画弧

  • 半径3
  • 从...开始(0,0)
  • 与中心(0-3*cos(30),0-3*sin(30))
  • 结束于(0-3*cos(30)+3*cos(60),0-3*sin(30)+3*sin(60))
\draw[blue] (0,0) -- ++(30+180:3) -- +(60:3);

画一条蓝线到圆弧,形成一个完整的扇区,如下图所示。

在此处输入图片描述

最小工作示例

\documentclass[tikz,border=12pt]{standalone}


\begin{document}
\foreach \start/\stop in {30/60,45/90,135/180,0/180,45/315}
{
    \begin{tikzpicture}
        \draw[lightgray,ultra thin] (-6,-6) grid (6,6);
        \draw[red] (0,0) arc (\start:\stop:3);
        \draw[blue] (0,0) -- ++(\start+180:3) -- +(\stop:3);
        \node[anchor=north] at (0,6) {$(\start:\stop:3)$};
    \end{tikzpicture}
}
\end{document}

其他输出供您分析

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

答案2

为了便于理解,这里有一个图表:

在此处输入图片描述

在哪里

  • theta_i是起始角度,
  • theta_f是终止角度,
  • R 是半径,
  • O 是旋转中心(不是起源),
  • A 是起点,
  • B 是终点。

问题的答案

  1. 起始角度和终止角度似乎是相对于 y 轴定义的,但在 Tikz 手册中,它们是相对于 x 轴定义的。这是对的吗?

起始和终止角度是相对于 x 轴定义的。这种惯例很普遍,所以这并不奇怪。尽管手册tikz(v3.0) 实际上没有在任何地方说明这一点,但据我所知,您可以从其中使用该操作的众多示例中收集到尽可能多的信息arc

  1. 终止角是定义在 y(或 x)轴与传入路径之间,还是定义在 y(或 x)轴与端点以外的路径延伸之间?

请参阅我对问题 1) 的回答。

  1. 从几何角度来说,仅提供起始角和终止角(以及半径)不足以明确定义圆弧。还有其他假设吗?例如:圆弧必须小于 180 度?或者圆弧必须始终逆时针弯曲?

唯一的假设是 1) 中指定的假设,即旋转是逆时针的。手册中也没有说明这种方向选择,但也不应该太令人惊讶。

此外,您可以获得跨度超过 180 度的圆弧(通过 | \theta_f- \theta_i| > 180 度),并且可以获得顺时针弯曲的圆弧(通过\theta_f< \theta_i)。

相关内容