У меня есть сегменты 2D линии. Моя цель - сделать разные замкнутые многоугольники. Но здесь я хочу выбрать большинство сегментов внешней линии, когда несколько параллельных сегментов линии остаются закрытыми друг для друга. с различными комбинациями линий, я могу создавать разные замкнутые полигоны. Я думал и изо всех сил пытался узнать, как получить большинство внешних линий, поскольку мне нужен многоугольник, который создается внешними большинством линий. (Polyogns в конце построены путем пересечения сегментов сегмента adjoying.) Я думал получить большую ограничительную рамку, содержащую все сегменты, и получить центроид, а затем найти перпендикулярные расстояния для каждой линии. В этом процессе я нашел близлежащие линейные сегменты, которые ориентированы близко друг к другу (т. Е. Вблизи параллельных линий). Таким образом, из тех близких параллельных линий я хочу, чтобы внешний самый один. (то есть красный). Но если я использовал центроид и сравнивал расстояния, то самое длинное расстояние (между соседними параллельными линиями) не дает правильной внешней самой линии, когда существуют более вогнутые и выпуклые витки, так как некоторые внешние (самые красные) случаи не дают самой длинной расстояние. У меня есть; координаты конечных точек для каждого сегмента линии. (то есть векторные данные)Как выбрать сегменты внешней линии
Итак, я ищу хороший способ получить большинство сегментов внешней линии от близлежащих параллельных линий. Чтобы вы поняли, я прикрепил образцы данных, которые у меня есть. Самые внешние сегменты линии показаны красным цветом. наконец, эти красные линии дают мне границу моего многоугольника. Итак, я хочу получить красные линии из соответствующих параллельных черных линий.
ПРИМЕЧАНИЕ. Мои сегменты линии ориентированы в другом направлении. И не только до X & Y осей. Кроме того, близлежащие линии donot всегда имеют 90 или 180 углов со смежными линиями.
, пожалуйста, предложите мне метод. заранее заблаговременно
например, если A, B и C, D являются соседними параллельными отрезками. то внешняя большая строка должна быть B и C. Но если я сравниваю расстояния от центра тяжести (O), то я могу получить C как самый внешний, но B не может получить, поскольку расстояние от O до B меньше, чем от O до A. My метод терпит неудачу в этом типе пятен. Итак, смотрите альтернативы ..
У вас есть только линии, параллельные оси? –
@Grigor Gevorgyan: нет, мои линии не всегда параллельны осям XY. некоторые из них наклонены к осям. – niro
Мне не очень понятно, что вы имеете в виду с «сегментами внешней линии». Вы имеете в виду внешние в группе близлежащие параллельные линии? Или внешние линии всего полигона? –