gpt4 book ai didi

python - 为椭圆体内的 3D 数组中的点赋值

转载 作者:太空宇宙 更新时间:2023-11-03 11:18:29 24 4
gpt4 key购买 nike

我需要为椭圆体内的 3D 数组中的点赋值。椭球方程应该是这样的:

r=b.sin(u)
x=r.cos(v)
y=r.sin(v)
z=a.cos(u).

但我认为这只是视觉上的。我已经在立方体阵列上尝试了一些带有掩码的东西:

a, b = (size-1)/2, (size-1)/2
n = size
r = (size-1)/2

y,x = np.ogrid[-a:n-a, -b:n-b]
mask = x*x + y*y <= r*r # circle mask

array = np.zeros((n, n, n))
array[mask] = 10

但这只在 x 和 y 中创建了一个圆,这给了我:This/plots .

它不是一个球体。 (我需要一个椭圆体)。

有什么想法吗?

最佳答案

mask = x*x + y*y <= r*r给你一个圆,因为这是圆的等式。

同理,

mask = x*x + y*y + z*z <= r*r应该给你一个球体,并且

mask = x*x/(a*a) + y*y/(b*b) + z*z/(c*c) <= r*r应该给你一个ellipsoid半长主轴a , b , 和 c .

当然,您必须创建一个 z数组的方式类似于您创建 x 的方式和 y阵列。

关于python - 为椭圆体内的 3D 数组中的点赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48068011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com