![如何绘制圆形扇区?](https://linux22.com/image/307817/%E5%A6%82%E4%BD%95%E7%BB%98%E5%88%B6%E5%9C%86%E5%BD%A2%E6%89%87%E5%8C%BA%EF%BC%9F.png)
使用 Tikz,我想绘制圆形扇区(半径为 2),但他只绘制了一个三角形:
\documentclass[fullpage, 12pt]{ article}
\usepackage{tikz}
\usepackage{color}
\begin{center}
\begin{tikzpicture
\draw[fill=gray!40] (0,0) to (1.41,-1.41) to (1.41,1.41) to (0,0) arc;
\draw[ultra thick]
(0,0) circle [radius=2];
\draw[thick]
(0,-2)--(0,2)
(-2,0)--(2,0)
(-1.41,-1.41)--(1.41,1.41)
(-1.41,1.41)--(1.41,-1.41);
\end{tikzpicture}
\end{center}
\end{document}
答案1
如果你将第一行更改为
\draw[fill=gray!40] (0,0) -- +(45:2) arc (45:-45:2);
它有效。而且你不需要color
包,因为 TikZ 本身就使用包xcolor
。
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\draw[fill=gray!40] (0,0) -- +(45:2) arc (45:-45:2);
\draw[ultra thick]
(0,0) circle [radius=2];
\draw[thick]
(0,-2)--(0,2) (-2,0)--(2,0)
(-135:2)--(45:2)
(135:2)--(-45:2);
\end{tikzpicture}
\end{document}
答案2
作为补充信息,这里是使用 MetaPost 完成的一种方法(在 LuaLaTeX 程序中插入代码以方便排版):
\documentclass[border=2mm]{standalone}
\usepackage{luamplib}
\begin{document}
\begin{mplibcode}
u := 2cm;
path horizontal, bisector[];
horizontal = (left -- right) scaled u;
bisector1 = horizontal rotated 45;
bisector2 = bisector1 rotated (-90);
beginfig(1);
fill buildcycle(bisector1, halfcircle scaled (2u) rotated -90, bisector2)
withcolor .8white;
draw fullcircle scaled (2u) withpen pencircle scaled 1.25;
draw bisector1; draw bisector2;
draw horizontal; draw (down--up) scaled u;
endfig;
\end{mplibcode}
\end{document}
为了填充圆形扇区,buildcycle
这里使用了 MetaPost 的宏。它以两个或多个路径作为参数,并尝试返回与它们共同划定的区域接壤的路径(如果存在)。
不过,当每条路径与列表中的以下路径只有一个交点时,效果最佳。这就是我选择除两个角平分线之外halfcircle scaled (2u) rotated -90
的给定圆的右半部分()作为参数的原因buildcycle
,而不是整个圆:整个buildcycle
圆与每个角平分线的两个交点可能会让人完全困惑。
如果我给出论点,它也会起作用fullcircle scaled (2u) rotated 180
,但要理解原因,有必要阅读这次讨论和/或手册,第 30-32 页。
输出: