Skip to content

Поиск аттракторов и репеллеров случайно сгенерированных географических точек

Notifications You must be signed in to change notification settings

EvgenZhaba/fatum

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 

Repository files navigation

fatum

Поиск аттракторов и репеллеров случайно сгенерированных географических точек. Поддерживает загрузку фонового изображения, лучше близкого по размерам к квадрату.

История изменений.

v3 https://t.me/reverb_neuron/919

v4 https://t.me/reverb_neuron/921

Используется Python 3.3 и выше, поскольку в этой версии добавили venv.

В папке со скриптом выполнить следующие команды:

  1. Сперва создадим виртуальное окружение:
python -m venv fatum

Будет создана папка fatum в текущей папке.

  1. Активируем виртуальное окружение

Для Windows:

fatum\Scripts\activate

Для Linux:

source fatum/bin/activate

После включения в командной строке будет метка, что сейчас находимся в виртуальном окружении: в начале строки будет (fatum).

  1. Устанавливаем зависимости:
pip install requests pillow
  1. Запускаем скрипт:
python guifatum.py

После работы скрипта создастся файл конфига. В нём можно сделать правки и запустить скрипт ещё раз, пока не будет получен требуемый результат.

  1. После работы со скриптом выключаем виртуальное окружение. Для Windows.
fatum\Scripts\deactivate

Для Linux:

deactivate

В ходе использования скрипта генерируются случайные точки (псевдослучайные или квантово случайные), затем программа пытается определить аттракторы и репеллеры. Право выбора точек оставлено за пользователем. Справка из файла guifatum.py:

GUI v4 для модуля fatum

Реализует:

      Обращения к модулю fatum, использование генераторов псевдослучайных и квантово случайных чисел.
      Загрузку данных из конфига, создаётся при первом запуске.
      Загрузку изображения как карты.
      Сохранение полученных координат как изображения в файл result.png
      ЛКМ - получение координаты в GUI по клику на нужную точку и запись её в текстовый файл result.txt как ссылку на гугл карты.
      ПКМ - проведение одной итерации сужения радиуса.
      СКМ - проведение всех итераций сужения радиуса.
      Полученные координаты и нажатия ЛКМ также сохраняются в файл-изображение result.png.

При первом запуске программа создаёт стандартный конфиг, и делает вычисления по нему.
Впоследствии исходные данные в конфиге можно изменить.
Также, если в папке есть изображение "input.png", то программа загружает его в качестве фона. Например, можно загрузить карту любимой игры, и сгенерировать точки для неё.

      Алгоритм поиска аттракторов и репеллеров.
      
      Текущий радиус начинается с максимального, затем сужается до минимального.
      Каждый этап перебираются все точки, которые могут быть центром круга с текущим радиусом, не выходящего за пределы основного круга.
      Относительно каждой точки строится круг, считается количество точек в нём и сумма расстояний до них.
      Затем эти точки сортируются: сперва по количеству точек, затем по сумме расстояний.
      Та точка, что имеет всех больше соседей, лежащих наиболее близко - аттрактор.

About

Поиск аттракторов и репеллеров случайно сгенерированных географических точек

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages