Dogs Radar
Dogs Radar - инсутремент для симуляции взаимодействия объектов на плоскости
Для увеличения красоты и понимания происходящего, в качестве объектов в приложении используются собачки
Техническое задание и
акт приёмки
Правила взаимодействия собак
Взаимодействие собак между собой определяется по следующим правилам:
-
Если две собаки находятся на расстоянии не превышающем R0, то они пытаются начать драку с вероятностью 1
-
Если две собаки находятся на расстоянии R1, так, что R1 > R0, они начинают рычать с вероятностью обратно
пропорциональной квадрату расстояния между ними
-
Если вокруг собаки нет соперников, она перемещается согласно текущему правилу
Функциональность приложения
- Обработка на движке более чем 200 тысяч собак за менее 500 мс
- Подсветка взаимодействия собак
- Возможность регулирования следующих параметров симуляции:
- Количество собак
- Скорость обновления перемещений и состояний собак
- Радиусы
R0 и R1, задающие ограничения максимального расстояния драки и рычания соответственно
- Паттерн движения собак
- Свободное (Simple)
- Движение прямо с отклонением на некоторый угол (Vector)
- Функция пересчета расстояний
- Евклидово расстояние
- Манхэттенское расстояние
- Половина длины окружности, построенной через 2 рассматриваемых собаки
- Возможность зума и перемещения камеры по карте для детального наблюдения за собаками
- Взможность рисования барьеров на фронте
Демонстрация работы приложения
Выбор параметров

Корректная работа с границами

Демонстрация на большом количестве собак

Запуск приложения
Для запуска нашего приложения вы можете использовать готовые сборки под разные платформы,
представленные здесь
Для самостоятельной сборки и запуска приложения используйте:
make run
Самостоятельно можно посмотреть бенчмарки с профайлером для движка отдельно, для этого используйте:
make run-engine
go tool pprof -http=:8080 cpu.pprof
Затем нужно зайти на localhost:8080 для просмотра подробного дерева профайлинга или флэйм графа.
Архитектура и используемые решения