如果您有 Mathematica 和输入:
ParametricPlot3D[{Sin[u], Sin[v], Sin[u + v]}, {u, 0, 2 Pi}, {v, 0, 2 Pi]
您将生成一个 3D 实体,它看起来像一个侧面被压碎的立方体。我想要做的是用水平面截取这个实体的横截面:z = 0
、z = 1
、z= -1
、z= 1/2
和z= -1/2
。
生成这些横截面图的命令是什么?
如果您有 Mathematica 和输入:
ParametricPlot3D[{Sin[u], Sin[v], Sin[u + v]}, {u, 0, 2 Pi}, {v, 0, 2 Pi]
您将生成一个 3D 实体,它看起来像一个侧面被压碎的立方体。我想要做的是用水平面截取这个实体的横截面:z = 0
、z = 1
、z= -1
、z= 1/2
和z= -1/2
。
生成这些横截面图的命令是什么?
这可以通过指定 a 来完成RegionFunction
,这是一个布尔条件,用于确定允许在何处绘制曲面。在这里,您将使用
RegionFunction -> Function[{x, y, z}, z < a]
a
您希望相交平面的高度在哪里。为了说明这一点,我将制作一部电影:
t = Table[
ParametricPlot3D[{Sin[u], Sin[v], Sin[u + v]}, {u, 0, 2 Pi}, {v, 0,
2 Pi}, RegionFunction -> Function[{x, y, z}, z < a],
PlotRange -> {{-1, 1}, {-1, 1}, {-1, 1}}],
{a, 1, -1, -.1}
]
现在我将其导出为GIF
动画以包含在以下内容中:
Export["section.gif", Join[t, Rest[Reverse[t]]]]
要获得相交曲线,您可以使用MeshFunctions
andMesh
选项,例如
ParametricPlot3D[{Sin[u], Sin[v], Sin[u + v]}, {u, 0, 2 Pi}, {v, 0, 2 Pi},
MeshFunctions -> {#3 &}, Mesh -> {Range[-1, 1, 1/2]},
PlotStyle -> None, PlotPoints -> 50]