Author Topic: Как подсчитать количество определенного цвета в многоугольной области?  (Read 4948 times)

0 Members and 1 Guest are viewing this topic.

ya12

  • Активный участник
  • ***
  • Posts: 165
    • View Profile
Точность таки нужна, потому что нижняя желтая ножка - это мост без перил над пропастью на котором сидят мои баферы и куда нужно возвращаться каждые 20 минут. Буду пробовать с 2мя линиями.

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile

1. Вычисляем азимут на ближайшего моба, это же предпочитаемый азимут движения.
2. Пока не важно есть прямой путь к мобу или нет. Есть определённый выбранный оптимальный радиус при достижении которого начинаем искать обход.
3. Проверяем на линии между персом и мобом нет ли препятствий (стен) ближе, чем заданное расстояние.
4. Если препятствие есть идём на моба...
5. Пока расстояние до препятствия больше размера радиуса из п.2 идём на моба
6. Если равно или меньше ищем обходной путь...
   6.1 От выбранного направления на расстоянии радиуса из п.2 проверяем точки на окружности со сдвигом в N градусов поочерёдно в обе стороны.
    Т.е. на 5 градусов левее направления преведущего движения, на 5 правее, на 10 левее, на 10 правее и т.д. пока не всретим открытое место.
   6.2 Вычисляем новый азимут движения, на новую точку. Берём чуть запас в ту же сторону чтоб не идти впритирку.
   6.3 Пока идём в этом направлении проверяем не открылся ли из текущей точки прямой путь.

 Интересно.

Дословно не смог понять этот алгоритм, но пока пытался понять, возможно пришел к чемуто своему (хотя, возможно это именно то что ты и пытался обьяснить). Но так как пока практической нужды нету, не на чем испытывать.

А вообще, если карта статична, то какой смысл писать искустсвенный интеллект?  :D . Если мы видим моба в какойто определенной области карты, то почему бы не пойти в эту область по заранее записанному маршруту?

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Ну там карт много. Мы появляемся в нескольких местах и мобы рандомно ходят. Проще отслеживать на лету чем чем собирать все данные и прописывать. Если такое вообще возможно.
Да, с описанием беда  :) сам понимаю. Картинки бы помогли, но я с телефона.


dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
А еще...

Может вполне себе справиться "алгоритм поиска пути А*" http://crapware.aidf.org/forum/index.php?topic=1958.0. Карта то не сложная. Или в реале это не так? Разрешение "рабочей" карты большое не потребуется.

Я вот вчера и сегодня немного пытался понять принцип работы этого алгоритма...  :( понял, что пока не мой уровень. А еще и надеялся всунуть его в длл плагин... мечты... ;D

Пока читал различные статьи, заметил что есть "мод" для этого алгоритма - "Jump Point Search" https://habr.com/post/162915/

@Vint
Не уж то этот JPS сложнее в написании чем поиск пути А*? А по скорости выполнения прирост должен быть ощутимым  ::) .
Вроде написано "Этот алгоритм является улучшенным алгоритмом поиска пути A*. ". Значит они в чемто схожи.