填充两条曲线之间的区域

填充两条曲线之间的区域

我正在尝试填充两个圆圈之间、路径 A 和 B 之间的小区域(在代码中),您能帮帮我吗?

\documentclass[tikz,border=2mm]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}

\begin{document}
\begin{tikzpicture}

\draw [domain=0:360] plot [smooth] ({1.5*cos(\x)}, {1.5*sin(\x)});
\draw [domain=0:360] plot [smooth] ({2.55*cos(\x)}, {2.55*sin(\x)});
\draw [name path=A](2.20836478,1.275)to[out=-60,in=-20](1.299038106,0.75);
\draw [name path=B] (2.20836478,-1.275)to[out=60,in=20](1.299038106,-0.75);
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案1

据我所知,该fill操作适用于Z 语句中必须包含要填充的整个路径(TiZ 用直线将其闭合(如果它尚未闭合)。我没能通过与操作相关的参数图获得完美的结果to——在我最好的尝试中,只剩下一条细细的直线。但是,以下代码使用该arc操作执行相同的几何构造,结果比插值图更好plot(据我所知,结果输出比插值图更接近实际圆弧)。请注意极坐标的方便使用。

\documentclass[tikz,border=2mm]{standalone}

\begin{document}
\begin{tikzpicture}
\fill (30:2.55cm)
  arc[start angle=30, end angle=330, radius=2.55cm]
  to[out=60, in=20] (330:1.5cm)
  arc[start angle=330, end angle=30, radius=1.5cm]
  to[out=-20, in=-60] cycle;
\end{tikzpicture}
\end{document}

在此处输入图片描述

从之前的问题中,我似乎记得你想用图案填充这个“豆子”,所以这里是使用pattern={Lines[angle=45, distance=4pt]}Tipatterns.metaZ 库:

\documentclass[tikz,border=2mm]{standalone}
\usetikzlibrary{patterns.meta}

\begin{document}
\begin{tikzpicture}
\filldraw[pattern={Lines[angle=45, distance=4pt]}] (30:2.55cm)
  arc[start angle=30, end angle=330, radius=2.55cm]
  to[out=60, in=20] (330:1.5cm)
  arc[start angle=330, end angle=30, radius=1.5cm]
  to[out=-20, in=-60] cycle;
\end{tikzpicture}
\end{document}

在此处输入图片描述

PS:我的代码和您的代码都没有使用pgfplots,因此我删除了\usepackage{pgfplots}\usepgfplotslibrary{fillbetween}行。

相关内容