绘制封闭的参数曲线并阴影化其中的区域

绘制封闭的参数曲线并阴影化其中的区域

我希望绘制由参数方程 x = 1+sin t,y = 3 + 3(cos t)^3 定义的曲线,使得该曲线所包围的区域被阴影化。就代码而言,我似乎无法在网上找到类似的示例来帮助我,所以我没有一个可以开始工作的起点。任何绘制此曲线的帮助都将不胜感激。我想要一组与之配合的基本轴,标记为 x 和 y,并用 O 标记原点。

答案1

另一种不使用的方法\clip如下:

\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\fill[blue] plot[smooth,domain=-90:90,variable=\t] ({1+sin(\t)},{3 + 3(cos \t)^3}) 
            plot[smooth,domain=90:270,variable=\t] ({1+sin(\t)},{3 + 3(cos \t)^3});
\draw[-latex] (0,0) node[left] {$O$}-- (3,0) node[below]{$x$};
\draw[-latex] (0,0) -- (0,2) node[left]{$y$};
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

错误已更正,感谢 Franck Pastor!

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{center}
\begin{tikzpicture}
 \draw[-latex] (0,0) node[left] {$O$}-- (3,0) node[below]{$x$};
 \draw[-latex] (0,0) -- (0,6) node[left]{$y$};
 \clip plot[smooth,samples=36,domain=0:360,variable=\t] ({1+sin(\t)},{3 + 3*(cos
 (\t))^3});
 \draw[fill=blue,opacity=0.8] (0,0) rectangle (2,6);
\end{tikzpicture}
\end{center}
\end{document}

在此处输入图片描述

答案3

以下是使用 MetaPost 的尝试,为方便起见,将其插入 LuaLaTeX 程序中。使用 MetaPost,可以关闭参数曲线,然后通过使其成为一个循环(.. cycle指令)来填充它,就在它即将连接自身时。

\documentclass[border=3mm]{standalone}
\usepackage{luatex85, luamplib}
\begin{document}
\begin{mplibcode}
u := cm; xmax = 2.25; ymax = 6.25;
vardef f(expr t) = 1 + sind t enddef;
vardef g(expr t) = 3 + 3((cosd t)**3) enddef;
path curve;
beginfig(1); 
    % Axes and Labels
    drawarrow origin -- (xmax*u, 0);
    label.llft(btex $O$ etex, origin); 
    label.bot(btex $x$ etex, (xmax*u, 0));
    drawarrow origin -- (0, ymax*u);
    label.lft(btex $y$ etex, (0, ymax*u));
    % Filled Curve
    curve = ((f(0), g(0)) for t = 1 upto 359: .. (f(t), g(t)) endfor .. cycle) scaled u;
    fill curve withcolor blue;
endfig;
\end{mplibcode}
\end{document}

在此处输入图片描述

答案4

下面是另一种使用方法\filldraw

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{center}
\begin{tikzpicture}
 \draw[-latex] (0,0) node[left] {$O$}-- (3,0) node[below]{$x$};
 \draw[-latex] (0,0) -- (0,6) node[left]{$y$};
 \filldraw[blue!80] plot[smooth,samples=36,domain=0:360,variable=\t] ({1+sin(\t)},{3 + 3*(cos
 (\t))^3});
\end{tikzpicture}
\end{center}
\end{document}

在此处输入图片描述

相关内容