区域和圆圈之间的阴影区域

区域和圆圈之间的阴影区域

如何绘制一个边长为 6 的正方形,并将其内接于一个圆,并让程序显示正方形和圆之间的阴影区域

答案1

这是一个简单的选项;的值\side控制正方形边的一半:

\documentclass{article}
\usepackage{tikz}

\def\side{3}

\begin{document}

\begin{tikzpicture}
\draw[fill=yellow!40] (0,0) circle (\side*1.4142);
\draw[fill=white] (-\side,-\side) rectangle (\side,\side);
\end{tikzpicture}

\end{document}

在此处输入图片描述

另一个选项是使用交叉点库;这次的值\radius控制圆的半径:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{intersections}

\def\radius{2}

\begin{document}

\begin{tikzpicture}
\draw[name path=circle,fill=yellow!40] (0,0) circle (\radius);
\path[name path=line1] (-\radius,-\radius) -- (\radius,\radius);
\path[name path=line2] (-\radius,\radius) -- (\radius,-\radius);
\filldraw[draw=black,fill=white,
  name intersections={of=circle and line1,by={a,b}},
  name intersections={of=circle and line2,by={c,d}}] 
  (a) -- (c) -- (b) -- (d) -- cycle;
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案2

一些补充:

使用保罗的代码,你可以使用even odd rule如果你画一个逆时针的正方形

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
  % parameters
  \coordinate (center) at (2,3);
  \def\radius{3cm}
  \def\angle{15}
  %
  \path[fill=lime,draw=black,thick,even odd rule]
  (center) circle (\radius)
  +(\angle:\radius) --
  +(\angle+90:\radius) --
  +(\angle+180:\radius) --
  +(\angle+270:\radius) --
  cycle;
\end{tikzpicture} 

\end{document} 

如果你想填充两个圆圈之间的区域,你可以选择以下方法

\begin{tikzpicture}
\draw[fill=lime,even odd rule] (0,0) circle (2cm) circle (1cm) ;
\end{tikzpicture}   

\begin{tikzpicture}
\draw[fill=lime,even odd rule] (0,0) circle (2cm) (0:1) arc (0:360:1) ;
\end{tikzpicture} 

\begin{tikzpicture}
\draw[fill=lime] (0,0) circle (2cm) (0:1) arc (0:-360:1) ;
\end{tikzpicture}

在此处输入图片描述

关于建设

您可以将 Tikz 与 tkz-euclide 结合使用。您可以使用 tikz 或 tkz-euclide 给出两个点,并使用笛卡尔坐标或极坐标。然后定义正方形并得到点 C,然后您可以定义直径为 A 和 C 的圆

\documentclass{scrartcl}
\usepackage{tkz-euclide} 
\usetkzobj{all} 
\begin{document}

\begin{tikzpicture} 
  \tkzDefPoint(2,1){A}
  \tkzDefPoint(5,2){B} 
  \tkzDefSquare(A,B) \tkzGetFirstPoint{C}
  \tkzDrawCircle[diameter,fill=lime](A,C)
    \tkzDrawSquare[fill=white](A,B)   
\end{tikzpicture}

\end{document} 

在此处输入图片描述

答案3

以下是使用填充的解决方案nonzero rule。参数为:

  • 坐标center
  • 距离\radius
  • 正方形\angle变成圆形。

例子

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
  % parameters
  \coordinate (center) at (2,3);
  \def\radius{3cm}
  \def\angle{15}
  %
  \path[fill=lime,draw=black,thick]
  (center) circle (\radius)
  +(\angle:\radius) --
  +(\angle-90:\radius) --
  +(\angle-180:\radius) --
  +(\angle-270:\radius) --
  cycle;
\end{tikzpicture}
\end{document}

只是为了好玩(感谢 Qrrbrbirlbel):

动画示例

\documentclass[tikz]{standalone}
\begin{document}
\foreach \angle in {0,1,...,89}{
  \begin{tikzpicture}
    \coordinate (center) at (2,3);
    \def\radius{3cm}
    \fill[white] (center) +(-\radius,-\radius) rectangle +(\radius,\radius);
    \path[fill=lime,draw=black,thick]
    (center) circle (\radius) +(\angle:\radius) -- +(\angle-90:\radius)
    --  +(\angle-180:\radius) --  +(\angle-270:\radius) --  cycle;
  \end{tikzpicture}
}
\end{document}

答案4

减少按键次数来拯救地球。

\documentclass[pstricks]{standalone}

\begin{document}
\foreach \ang in {0,15,...,345}{%
\begin{pspicture}(-4,-4)(4,4)
    \pscustom[fillstyle=eofill,fillcolor=green]
    {
        \pscircle{3}
        \rotate{\ang}
        \psframe(3;-135)(3;45)
    }
\end{pspicture}}
\end{document}

在此处输入图片描述

相关内容