我有许多(5 到 50 之间)3D 线性不等式(例如,2x + 3y - z >= 2
),每个不等式都在 3D 中定义一个半空间。
我需要在特定的 3D 区域中绘制由这些半空间相交形成的多面体(将具有无限体积)。只需绘制多面体的边界面就足够了。
这个库有用吗? scipy.spatial.HalfspaceIntersection
。该示例使用 2D 绘图和 matplotlib
,对 3D matplotlib
绘图感兴趣。
最佳答案
最简单的方法是使用mayavi.mlab.contour3d()
:
import numpy as np
from mayavi import mlab
X, Y, Z = np.mgrid[-50:50:100j, -50:50:100j, -50:50:100j]
V = ((2 * X + 3 * Y - Z >= 2) &
(4 * X - 2 * Y + Z <= 10) &
(X + Y + Z >= 1)).astype(float)
mlab.contour3d(X, Y, Z, V, contours=[0.5])
输出:
关于python - 绘制几个 3D 半空间的交集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48851764/