Radar

module
v0.0.0-...-955a4b2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 25, 2025 License: MIT

README

Dogs Radar

logo

Dogs Radar - инсутремент для симуляции взаимодействия объектов на плоскости

Для увеличения красоты и понимания происходящего, в качестве объектов в приложении используются собачки

Техническое задание и акт приёмки

Правила взаимодействия собак

Взаимодействие собак между собой определяется по следующим правилам:

  1. Если две собаки находятся на расстоянии не превышающем R0, то они пытаются начать драку с вероятностью 1

  2. Если две собаки находятся на расстоянии R1, так, что R1 > R0, они начинают рычать с вероятностью обратно пропорциональной квадрату расстояния между ними

  3. Если вокруг собаки нет соперников, она перемещается согласно текущему правилу

Функциональность приложения

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

Демонстрация работы приложения

Выбор параметров

image

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

borderdAndDogs

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

muchDogs

Запуск приложения

Для запуска нашего приложения вы можете использовать готовые сборки под разные платформы, представленные здесь

Для самостоятельной сборки и запуска приложения используйте:

  make run

Самостоятельно можно посмотреть бенчмарки с профайлером для движка отдельно, для этого используйте:

   make run-engine
   go tool pprof -http=:8080 cpu.pprof

Затем нужно зайти на localhost:8080 для просмотра подробного дерева профайлинга или флэйм графа.

Архитектура и используемые решения

Описание алгоритма
Инструменты и архитектурная документация

Directories

Path Synopsis
cmd
desktop command
engine command
model
api
img

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL