Найти в Дзене
Удалёнка

Моделирование косяка рыб Python

Это симуляция Роя, написанная на Python3 с Pygame2 и NumPy. Для использования: Сохраните файл pynboids_sp.py (и nboids.png, если вам нужна иконка, не обязательно) и запустите через python. (Пример: python3 pynboids.py) Клавиша Esc для выхода. Я включил несколько настраиваемых параметров в код. Вы можете настроить размер окна, полноэкранный режим, частоту кадров и количество создаваемых рыб, а также то, будут ли они избегать краев экрана или переворачиваться на другую сторону, изменять цвет фона или превращать роя в рыб! ;) Новая версия pynboids_sp.py реализует сетку пространственного разделения для повышения эффективности обнаружения других boids. Самая эффективная версия на данный момент! Добавлена ​​версия pynboids2.py, обновление исходных pynboids, с методами массива numpy из pixelboids.py для повышения эффективности. В 2 раза больше boids, чем b4. Добавлена ​​версия pixelboids.py, рисующая рыб как пиксели в Surfarray, которые исчезают при движении. Сортировка по расстоянию и матем

Это симуляция Роя, написанная на Python3 с Pygame2 и NumPy.

Для использования: Сохраните файл pynboids_sp.py (и nboids.png, если вам нужна иконка, не обязательно) и запустите через python. (Пример: python3 pynboids.py)

Клавиша Esc для выхода.

Я включил несколько настраиваемых параметров в код.

Вы можете настроить размер окна, полноэкранный режим, частоту кадров и количество создаваемых рыб, а также то, будут ли они избегать краев экрана или переворачиваться на другую сторону, изменять цвет фона или превращать роя в рыб! ;)

Новая версия pynboids_sp.py реализует сетку пространственного разделения для повышения эффективности обнаружения других boids. Самая эффективная версия на данный момент!

Добавлена ​​версия pynboids2.py, обновление исходных pynboids, с методами массива numpy из pixelboids.py для повышения эффективности. В 2 раза больше boids, чем b4.

Добавлена ​​версия pixelboids.py, рисующая рыб как пиксели в Surfarray, которые исчезают при движении. Сортировка по расстоянию и математика цикла for заменены математикой массива numpy. Использует затухающий SurfArray для создания хвостов, пикселизация делает их анимированными.

Пример запуска: