我找到了这个问题以及 Mathematica Stack Exchange 的非常好的解决方案。
我有一个嵌入在四维欧几里得空间中的 3D 环面 ( \mathbf S^1\times\mathbf S^1\times \mathbf S^1
)。我怎样才能画出这个 3D 环面在任意方向上被 3D 欧几里得空间切割的横截面?方程如下:
\begin{align*}
x &= (r + (t + d\cos\,a)\cos\,b)\cos\,c\\
y &= (r + (t + d\cos\,a)\cos\,b)\sin\,c\\
z &= (t + d\cos\,a)\sin\,b\\
w &= d\sin\,a
\end{align*}
其中x,y,z,w
是四维空间中的正交坐标,r,t,d
是三个圆的半径,a,b,c
表示该点相对于三个圆的角度。
我发现在这里提出这个问题非常有价值。
答案1
一些非常简单的横截面将可能PGF图和技巧(虽然我对后者不太熟悉);但是,任意横截面可能超出了这些软件包的范围。就 PGFplots 而言,它可以z = f(x,y)
很好地处理形式的 3D 图,但更复杂的表面(例如参数图)通常会导致某些面以错误的顺序绘制,因此某些应该隐藏的面突然出现在前台。
对于复杂的 3D 绘图,最好的办法可能是在 Mathematica(或同等软件)中生成绘图并将其导出为 PDF 或 PNG。然后,PGFplots 可以导入预渲染的图形,并在其上叠加漂亮的轴和标签。对于 2D 绘图来说,这真的很容易做到,而且 PGFplots 还提供了一些对预渲染的 3D 图形的支持,如中所述第 66-71 页PGFplots 手册。