答案1
使用贝塞尔曲线绘图可能需要一些时间来适应,并且在尝试编码曲线tikz
而不是使用矢量图形程序绘制曲线时可能会涉及一些反复试验。
下面显示了我如何得到所需的形状。装饰show curve controls
只是为了说明我使用的控制点。
\documentclass[tikz,border=0.125cm]{standalone}
\usetikzlibrary{decorations.pathreplacing}
\tikzset{
show curve controls/.style={
decoration={
show path construction,
curveto code={
\draw [gray, thick]
(\tikzinputsegmentfirst)
.. controls (\tikzinputsegmentsupporta) and (\tikzinputsegmentsupportb) .. (\tikzinputsegmentlast);
\draw [red, thick]
(\tikzinputsegmentfirst) -- (\tikzinputsegmentsupporta);
\draw [red, thick]
(\tikzinputsegmentsupportb) -- (\tikzinputsegmentlast);
\fill [black]
(\tikzinputsegmentfirst) circle [radius=2pt]
(\tikzinputsegmentlast) circle [radius=2pt];
\fill [blue]
(\tikzinputsegmentsupporta) circle [radius=2pt]
(\tikzinputsegmentsupportb) circle [radius=2pt];
}
},
decorate}
}
\begin{document}
\begin{tikzpicture}
\draw [help lines] (-5,0) grid (5,10);
\path [fill=gray!20, fill opacity=0.5, postaction=show curve controls]
(-5,10)
.. controls ++(270:2) and ++(100:4) .. (-1/2,6)
.. controls ++(280:1) and ++(90:2) .. (-1/4,0)
-- (1/4,0)
.. controls ++(90:2) and ++(260:1) .. (1/2, 6)
.. controls ++(80:4) and ++(270:2) .. (5,10) -- cycle;
\end{tikzpicture}
\end{document}
答案2
您可以使用一些LaTeX/PSTricks包对于化学家来说正如丹尼斯·吉鲁所解释的,并由本杰明·科拉斯转播。它们可能是难以集成到 tikz。以下是第 50 页(PDF 中的 25 页)的一个例子:
\usepackage{pst-labo}
\pstChauffageBallon[glassType=flacon,recuperationGaz,
tubeRecourbeCourt,substance={\pstFilaments[10]{gray}}]
您也可以使用 pst-plot 或 pst-text,请参阅同一链接的第 49 页。