Извлечение прямоугольника из набора координат XY / Line - PullRequest
0 голосов
/ 28 января 2019

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

  • XY каждой точки
  • С чем связана каждая точка XY

Пример базового квадрата:

  • XY установлено: [[0, 0], [0, 10], [10, 0], [10, 10]]
  • Известно: [0, 0] подключаетсяна [0, 10], [10, 0] и т. д.

Вот некоторые проблемы:

  1. Ограничивающий набор XY не обязательно выровнен по XY,так что это может быть что-то вроде (ромб, если смотреть прямо): [0, 0], [3.5, 3.5], [0, 7], [-3.5, -3.5]
  2. Ограничивающий набор XY неОбязательно определите четырехугольник или даже 4-х стороннюю форму.Это может быть более сложным, например, в форме буквы L, форме U.
  3. 3) Меня также интересуют множественные комбинации прямоугольников в более сложных формах.Например: https://i.imgur.com/SVN1ipz.png

Я в порядке с установкой реалистичных границ, например, просто говоря что-то слишком сложное: https://i.imgur.com/dV7CfBG.png

Мой первоначальный мыслительный процесс былнайдите внешние углы (например, верхний левый максимум Y min X) и попробуйте найти стороны, поэтому что-то вроде:

[0, 10] вверху слева

[0, 10] подключается к[0, 0], [10, 10]

Найдите правую сторону для [0, 10] -> [0, 0], найдя точечную связь с ближайшим X, который падает вдоль покрытия Y [Y от 0 -> 10 покрыто].

Таким образом, мы в конечном итоге найдем [10, 10] -> [10, 0].

Повторим для ближайшего Y, который падает вдоль покрытия X [X из 0-> 10 покрыто] и найдите [0, 0] -> [10, 0]

Затем разверните это, чтобы найти частичные перекрытия (как в форме L, может быть 2 сегмента Y, которые перекрываются справасторона угловой линии).

Не сформулировать это так, как мне хотелось бы, но я думаю, что общая идея того, чего я хотел бы достичь, ясна.Мне было интересно, знал ли кто-нибудь о существующих подходах или логике решения таких вопросов.

...