У меня такой вопрос как разбить фигуры на прямоугольники?
возьмем такую ситуацию, что вам заранее известна форма, и имеются точки. нужно разбить фигуру на прямоугольники (rect), дело в том что саму область-фигуру не добавишь в регион. По любому надо разбивать на ректы. Ими проще проверять лежит ли точка внутри ректа или нет, чем какая то фигура.
Я уже многое сделал, у меня система находит эту фигуру. И надо после разбить на ректы.
Вот пример уже имеются 6 точек p1-p6, могу найти p7-p8. Теперь надо как-то собрать ректы (на глазок понятно что там 3, а то и меньше 2). надо как-то написать алгоритм, что эти отрезки образовали ректы
Фигуры могут быть любой формы
находил такой вопрос вот здесь, но ответа не нашел. алгоритм просто нужен

Принятый ответ

Вот конечный вариант. Переделал на хэш-таблицу
Исправил многие подвисы - большая часть которых эта строки. Именно строки вызывают подвисы. Они не только в дебагах, но в ExecuteFunc, строковое название молнии и пр. И теперь молнии могу миллиардами создавать без проблем. Я тексты строк все сохранил в бд. Без этого почему у юнитов анимация ходьбы поддергивалась.
Теперь все работает как надо и как часики. Единственная зараза - когда строю несколько деревней, потом вылетает чего-то с критом. Но это происходит очень и очень редко. где-то с шансом 0.05%. Возможно либо работаю с несуществующими объектами либо пытаюсь выгрузить из хэша не существующие данные. У вара какие то проблемы.
Пробовал вставить проверки GetHandleId(object) > 0 или HaveSavedReal или HaveSavedHandle - теперь сохранять карту не хочет. Пробую снова написать код

Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
29
5 лет назад
0
Каким образом детерминируются многоугольники?
По ссылке в вопросе это уже спрашивали
Загруженные файлы
0
30
5 лет назад
0
Я о процессе, исходно как они появляются и как определены
0
27
5 лет назад
0
Вам случайно не задача о принадлежности точки многоугольнику нужна?
не могу сказать, у меня же нет центра, у меня квадратные формы. и выглядит слишком сложно.

NazarPunk, так она у меня на 1.26, и с ошибками. щас новую карту скидываю.
Clamp, щас объясню как
Загруженные файлы
0
29
5 лет назад
0
не могу сказать, у меня же нет центра
Центр есть у точки, которая проверяется на принадлежность к многоугольнику. Вам нужно лишь хранить массив рёбер фигуры.
0
26
5 лет назад
0
Steal nerves, странный вопрос, товарищ! Что есть прямоугольник на координатной плоскости? Это 4 точки, у которых лишь по два варианта для X и Y, то есть, перебирая точки в массиве надо сравнивать, например, их X, при совпадении сравнивать их Y с другими точками, а потом у найденных Y опять сравнить X.
P. S. только сверяй, чтобы одинаковые X и Y не были у более двух точек, а то может быть, что это треугольник или линия.
0
27
5 лет назад
Отредактирован MpW
0
NazarPunk, я не понимаю что вы мне скинули. поэтому не могу этой подсказкой воспользоваться
Clamp, ну они циклами проверяют соседние координаты. а это большая работа чтоб объяснить. проще самому под капот заглянуть. есть видос как они создаются.
8gabriel8, я знаю. но есть разные фигуры
Загруженные файлы
0
26
5 лет назад
0
Если имеешь ввиду такие ситуации, когда есть чёрный многоугольник, но в нём по такому принципу считается красный четырёхугольник, который совсем не является частью чёрного многоугольника, то просто проверяй наличие ректа каждые 128 координат между двумя потенциальными точками четырёхугольника.
Загруженные файлы
0
24
5 лет назад
0
Steal nerves, а обязательно нужно идеальное разбиение или сойдет даже если ректы перекрываться будут?
Ну и, насколько я помню, при добавлении ректов в регион они на самом деле не как ректы добавляются, а разбиваются на маленькие кусочки размером с самую мелкую сетку и можно не париться о пересечении, а сам рект можно даже удалить после добавления в регион и ничего не поменяется.
0
27
5 лет назад
0
prog, идеального не обязательно. главное что все вошли. остальное не важно. я эти участки добавлю в регион.
У меня регион помогает при проверке можно строить, покупать, ставить туда. короче все на регион завязано. есть удобная нативка
0
24
5 лет назад
0
Steal nerves, окей, а зачем тебе тогда разбиение на ректы?
0
27
5 лет назад
Отредактирован MpW
0
prog, ну чтобы ректы добавить в регион. с помощью региона я и проверяю. лежат ли точки, не лежат. типа как новый тип Pathable (их всего 8, но могу доп добавлять еще триггерный аналог). с помощью этой штуки все проверяется. пока мне нравится)
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.