Почему v python не может отображать несколько сфер в некоторых случаях? - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь написать модель для менталитета стада - '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)

Какая проблема вызывает это? Я прочитал много документации, но не могу понять, почему в предыдущем коде есть только один!

1 Ответ

0 голосов
/ 05 апреля 2020

Пожалуйста, предоставьте небольшую, но рабочую программу. Я не знаю, в какой среде вы используете, но я предполагаю, что вы используете V Python 7 (ноутбук Jupyter? Spyder?) И что вы вводите свой код с

из v python import * from random import *

Я построил программу из этих строк, за которой следует ваш первый код, за которым следуют 3 сферных оператора, и я вижу 3 белых сферы и 1 красную сферу.

Для V Python вопросы, лучше написать на форум V Python, где гораздо больше пользователей V Python увидят ваш вопрос, чем если вы отправите в stackoverflow:

https://groups.google.com/forum/?fromgroups&hl=en#! форум / v python -Пользователи

...