Я пытаюсь написать модель для менталитета стада - 'boids' - в Python. У меня проблема с 3d-моделированием v python, поскольку кажется, что он не может отображать сразу несколько сфер, если они не находятся рядом друг с другом в коде.
Голые кости соответствующей части моего кода:
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()]
Мне бы хотелось, чтобы это отображало три случайно расположенных сферы, но я получаю только одну. Я могу получить три сферы, запустив:
Ball1 = sphere(pos = vector(1,0,0), radius = 0.05)
Ball2 = sphere(pos = vector(0,1,0), radius = 0.05)
Ball3 = sphere(pos = vector(0,0,1), radius = 0.05)
Какая проблема вызывает это? Я прочитал много документации, но не могу понять, почему в предыдущем коде есть только один!