gpt4 book ai didi

python - VPython 分形 : Can't create an array of shapes

转载 作者:行者123 更新时间:2023-12-01 09:16:15 26 4
gpt4 key购买 nike

我正在尝试使用 VPython 创建一个 menger 海绵。

我毫无问题地构建了基础部分(下图),并且我正在尝试创建一个用相同配置填充基础部分的数组。但是,我无法让它工作。显示内容没有变化,仍然只显示一个基础部件。



enter image description here



这是代码:

from vpython import *

l,w,h = 1,1,1

cubes = []
def basePiece():
L = 1
for i in range(-L,L+1):
for j in range(-L,L+1):
for k in range(-L,L+1):
sum = abs(i) + abs(j) + abs(k)
if sum > 1:
cube=box(color=vector(1,1,1), opacity=0.9,
pos=vector(i,j,k),
length=l, height=h, width=w)
cubes.append(cube)
return cubes

fract = []
L = 1
for x in range(L,L+1):
for y in range(L,L+1):
for z in range(L,L+1):
sum = abs(x) + abs(y) + abs(z)
if sum > 1:
fract.append(basePiece())

如有任何帮助,我们将不胜感激。
提前致谢。

最佳答案

问题是你写了 range(L, L+1) ,这意味着迭代器仅采用一个值( L ),而它应该是 range(<b>-L</b>, L+1) 。另一个问题是您应该扩展列表而不是追加,因为否则您会构建列表列表(尽管这可能不是什么问题):

fract = []
L = 1
for x in range(-L,L+1):
for y in range(-L,L+1):
for z in range(-L,L+1):
sum = abs(x) + abs(y) + abs(z)
if sum > 1:
fract.extends(basePiece())

所以不,它适用于:

x=-1, y=-1, z=-1
x=-1, y=-1, z= 0
x=-1, y=-1, z=+1

x=-1, y= 0, z=-1
x=-1, y= 0, z=+1

x=-1, y=+1, z=-1
x=-1, y=+1, z= 0
x=-1, y=+1, z=+1

x= 0, y=-1, z=-1
x= 0, y=-1, z=+1

x= 0, y=+1, z=-1
x= 0, y=+1, z=+1

x=+1, y=-1, z=-1
x=+1, y=-1, z= 0
x=+1, y=-1, z=+1

x=+1, y= 0, z=-1
x=+1, y= 0, z=+1

x=+1, y=+1, z=-1
x=+1, y=+1, z= 0
x=+1, y=+1, z=+1

如果您使用range(1, 1+1) ,你只会得到x = y = z = 1 ,因此它将被打印一次

但这仍然不够:您需要能够移动立方体。因此参数化basePiece :

从 vpython 导入*

l,w,h = 1,1,1

cubes = []
def basePiece(x0, y0, z0):
L = 1
for i in range(-L,L+1):
for j in range(-L,L+1):
for k in range(-L,L+1):
sum = abs(i) + abs(j) + abs(k)
if sum > 1:
cube=box(color=vector(1,1,1), opacity=0.9,
pos=vector(x0+i,y0+j,z0+k),
length=l, height=h, width=w)
cubes.append(cube)
return cubes

和:

fract = []
L = 1
for x in range(-L,L+1):
for y in range(-L,L+1):
for z in range(-L,L+1):
sum = abs(x) + abs(y) + abs(z)
if sum > 1:
fract.extends(basePiece(3*x, 3*y, 3*z))

关于python - VPython 分形 : Can't create an array of shapes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51233506/

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