如何用抛物线函数绘制区域?

如何用抛物线函数绘制区域?

我想要绘制一个具有两条直边和两条抛物线边的区域,如下图所示。 在此处输入图片描述

 ‎\documentclass{standalone}‎
‎\usepackage{tikz}‎
‎\begin{document}‎
‎\begin{tikzpicture}
‎\coordinate (O) at (0,1);‎
‎\coordinate (A) at (0,1.5);‎
‎\coordinate (C) at (20,1);‎
‎\coordinate (B) at (20,1.5);‎
     ‎\filldraw [thick,fill=blue!40]  (0,-.5)‎ -- ‎(0,.5)‎ -- ‎(20,.5)‎ -‎-(20,-0.5)‎ -- ‎cycle;‎
\draw [very thick, domain=0:20, variable=\x](0, 0)-- plot ({\x}, {-0.05*\x*\x});‎
‎\end{tikzpicture}‎
‎\end{document}

答案1

plot只是一种绘制路径的形式,因此:

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
    \coordinate (O) at (0,1);
    \coordinate (A) at (0,1.5);
    \coordinate (C) at (20,1);
    \coordinate (B) at (20,1.5);
    \begin{scope}[red]
    \newcommand{\startx}{5}
    \newcommand{\stopx}{10}
    \newcommand{\xhwidth}{1}
    \draw[fill=red!50!white, very thick] (\startx+\xhwidth, -0.05*5*5) -- 
           plot[variable=\x, domain=\startx:\stopx] ({\x-\xhwidth}, {-0.05*\x*\x})
           -- (\stopx+\xhwidth, -0.05*10*10) -- 
           plot[variable=\x, domain=\stopx:\startx] ({\x+\xhwidth}, {-0.05*\x*\x}) 
           -- cycle;
   \end{scope}
   \draw [very thick, domain=0:20, variable=\x](0, 0)-- plot ({\x}, {-0.05*\x*\x});
\end{tikzpicture}
\end{document}

在此处输入图片描述

如果您想要在末端进行不同类型的“切割”(例如垂直于曲线),只需计算四个点的数学运算 - 实际上是四个 x 坐标 - 并应用它们。

相关内容