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 для просмотра подробного дерева профайлинга или флэйм графа.


