关于如何计算弧的几个问题:
起始角度和终止角度似乎是相对于 y 轴定义的,但在 Tikz 手册中,它们是相对于 x 轴定义的。这是对的吗?
终止角是定义在 y(或 x)轴与传入路径之间,还是定义在 y(或 x)轴与端点以外的路径延伸之间?
从几何角度来说,仅提供起始角和终止角(以及半径)不足以明确定义圆弧。还有其他假设吗?例如:圆弧必须小于 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 是终点。
问题的答案
- 起始角度和终止角度似乎是相对于 y 轴定义的,但在 Tikz 手册中,它们是相对于 x 轴定义的。这是对的吗?
起始和终止角度是相对于 x 轴定义的。这种惯例很普遍,所以这并不奇怪。尽管手册tikz
(v3.0) 实际上没有在任何地方说明这一点,但据我所知,您可以从其中使用该操作的众多示例中收集到尽可能多的信息arc
。
- 终止角是定义在 y(或 x)轴与传入路径之间,还是定义在 y(或 x)轴与端点以外的路径延伸之间?
请参阅我对问题 1) 的回答。
- 从几何角度来说,仅提供起始角和终止角(以及半径)不足以明确定义圆弧。还有其他假设吗?例如:圆弧必须小于 180 度?或者圆弧必须始终逆时针弯曲?
唯一的假设是 1) 中指定的假设,即旋转是逆时针的。手册中也没有说明这种方向选择,但也不应该太令人惊讶。
此外,您可以获得跨度超过 180 度的圆弧(通过 | \theta_f
- \theta_i
| > 180 度),并且可以获得顺时针弯曲的圆弧(通过\theta_f
< \theta_i
)。