我正在尝试用Python编写一种针对鸡群心态的模型-'boids'。我在使用vpython 3d建模时遇到问题,因为它似乎无法一次显示多个球体,除非它们在代码中彼此相邻。
我的代码的相关部分的基本内容是:
'([A-Za-z]^[^\(]+)'
我希望显示三个随机放置的球体,但我只能得到一个。我可以通过运行得到三个球体:
def uniform_distr(x1, x2):
x1, x2 = float(x1), float(x2)
return x1 + random() * (x2 - x1)
def random_position_vector():
return vector(uniform_distr(-1, 1), uniform_distr(-1, 1), uniform_distr(-1, 1))
def random_unit_vector():
return norm(vector(random(), random(), random()))
class Boid:
def __init__(self,
initial_velocity = random_unit_vector(),
initial_position = random_position_vector()):
self.velocity = initial_velocity
self.position = initial_position
self.model = sphere(pos = self.position, radius = 0.05, color = color.red,
make_trail = False)
boid_list = [Boid(), Boid(), Boid()]
造成此问题的原因是什么?我已经阅读了很多文档,但是看不到为什么以前的代码中只显示一个!
答案 0 :(得分:0)
请提供一个小但有效的程序。我不知道您使用的是什么环境,但是我假设您使用的是VPython 7(Jupyter笔记本?Spyder?),并且您以
作为代码的开头从vpython导入* 来自随机导入*
我从这些行开始构造了一个程序,接着是您的第一个代码,接着是3个球体语句,我看到了3个白色球体和1个红色球体。
对于VPython问题,最好将其发布到VPython论坛,在该论坛上,与您是否发布到stackoverflow相比,会有更多的VPython用户看到您的问题:
https://groups.google.com/forum/?fromgroups&hl=en#!forum/vpython-users