我有一张想在 TikZ 中重现的图表:
想象一个装有液体的罐子(半径为 r、高度为 L 的圆柱体)。在每张图中,罐子都是倾斜的,液体的表面刚好接触到顶部与侧面的交界处。在第一张图中,液体覆盖了整个底部,而在第二张图中,液体只覆盖了一半。
编辑:是的,如果有时间,我可以自己做,但我想看看其他人如何处理 3D 方面的问题。有没有比绘制椭圆更好的方法来绘制投影圆?[就是这样@Andrew。]
最佳代码将使用样式和命名坐标,以便只需改变几个参数就可以改变图表。
答案1
你想要类似这样的东西吗?
如果是这样,恐怕我不知道该怎么做。
(问题关闭后在编辑中添加。 以上曾是使用 TikZ 制作,与下面的评论相反。但是,代码很乱,不够优雅——这只是一个开玩笑的快速破解。我私下把它发给了马修,但我不会在这里发布。画这样的图有一些有趣的方面,所以如果有人对制作这样的图表感兴趣,我鼓励他们仔细考虑哪些部分可以做,哪些部分很难,然后针对困难的部分提出一个有针对性的问题。)
答案2
此示例对您来说可能是一个很好的开始,但是它使用了 pst-solides3d (我在这里发现了...),也许你可能会得到与 tikz 类似的东西。
\documentclass{minimal}
\usepackage{pst-solides3d}
\pagestyle{empty}
\SpecialCoor
\begin{document}
\begin{pspicture}(-5,-5)(7,9)
\psset{viewpoint=20 10 10,Decran=40,lightsrc=20 10 5,solidmemory}
\defFunction{cone}(u,v){u v Cos mul}{u v Sin mul}{u}
\psSolid[object=surfaceparametree,base=-2 2 0 2 pi mul,
inhue=0.8 0.2,hue=0.8 0.2,
function=cone,linewidth=0.5\pslinewidth,
ngrid=25 40,fillcolor=cyan!50,
intersectionplan={[1 0 0 -1]},
intersectioncolor=(bleu),
intersectionlinewidth=3,
intersectiontype=0,
name=XYZ,action=none]%
\psSolid[object=plan,definition=equation,
args={[1 0 0 0]},
% args={[1 0 0 -1]},
fillcolor=blue!50,
base=-2 2 -2.5 2.5,ngrid=30 30,action=none,name=Plane]
\psSolid[object=fusion,base=XYZ Plane_s]
\gridIIID[Zmin=-2,Zmax=2](-2,2)(-2,2)
\end{pspicture}
\end{document}