用Python中的体素制成的椭球

问题描述

我需要用python中的体素制作一个椭圆体,但我仍然不完全了解如何定义该图的边界。我已经看到了一些使用布尔操作定义体素的示例,但我无法使其按照我想要的方式工作。任何帮助将不胜感激。

这是我一直在尝试的:

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
from mpl_toolkits.mplot3d.art3d import Poly3DCollection

fig = plt.figure()
ax = fig.add_subplot(111,projection='3d')

# the angles and radius
u = np.linspace(0,2 * np.pi,100)
v = np.linspace(0,np.pi,100)
radius = 4

# equations for the shell of the ellipsoid
X = 3*radius*np.sin(v)*np.cos(u)
Y = 2*radius*np.sin(v)*np.sin(u)
Z = radius*np.cos(v)


x,y,z = np.indices((10,10,10))
voxels = (x <= X) | (y <= Y) | (z <= Z)
ax.voxels(voxels)

plt.show()

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-12-f0d9033151c5> in <module>
     14 
     15 x,10))
---> 16 voxels = (x <= X) | (y <= Y) | (z <= Z)
     17 ax.voxels(voxels)
     18 

ValueError: operands could not be broadcast together with shapes (10,10) (100,)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)