![2D 和 3D 图形包之间的区别](https://linux22.com/image/233476/2D%20%E5%92%8C%203D%20%E5%9B%BE%E5%BD%A2%E5%8C%85%E4%B9%8B%E9%97%B4%E7%9A%84%E5%8C%BA%E5%88%AB.png)
我读到 TikZ、PSTricks 和 MetaPost 是 2D 矢量图形包,而 Asymptote 被认为是 3D 的。但是,我也知道您可以在 TikZ 中指定 3D 坐标,这样在 TikZ 中绘制 3D 图表就不仅仅是将其投影绘制到 2D 上了。考虑到这些因素,2D 或 3D 图形的真正含义是什么,它们之间有什么区别?
答案1
TikZ 并不是真正的 3D 软件包。它提供了第三维,但位于其他两个维度的平面中。您可以为绘图添加一些透视效果,使其看起来像是 3D 的,但这实际上取决于用户。除非我可以在某个地方更改视点并让图表自动从该视点渲染,否则我不会称其为真正的 3D。
这里有个问题:在三维空间中取四个点并绘制它们定义的四面体。如何在 TikZ 中做到这一点?连接四个顶点很容易,但根据观察者的视角,一些顶点和/或边将被其他顶点和/或边隐藏。因此它们应该以不同的方式呈现,或者根本不呈现。
如何确定哪些部分被隐藏了?在这个例子中,它可能只是一个基于顶点和透视的线性代数问题。但是如果你在图表中添加一些东西,你可能会遮挡你已经画好的东西。所以,在定义整个图表之前,无法进行系统的 3D 渲染。
有类似这样的项目草图 3D它允许您定义图形、进行计算并输出 TikZ 代码。但它不是内置在 TikZ 中的。
编辑:赫伯特通知我pst-solides3d
包,它可以在 PSTricks 中使用任何视口进行 3D 绘图。这意味着在 TikZ 中也可以实现,并且按照 TikZ 的增长速度,它可能会在不久的将来内置或随 TikZ 提供。但这是一项相当复杂的任务。
答案2
pst-solides3d可以处理隐藏的线和表面。