我想要绘制一个具有两条直边和两条抛物线边的区域,如下图所示。
\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 坐标 - 并应用它们。