символами "|" я показал, что в этих местах они пересекаются. Как определить, что один отрезок пересекает другой для отсечения пересечения из одного из видов отрезков?
Здравствуйте, Logot, Вы писали:
L>Вот мучаюсь с алгоритмом, который должен определять, что отрезки пересекаются в одной плоскости, не поможете?
L>Как определить, что один отрезок пересекает другой для отсечения пересечения из одного из видов отрезков?
А можно уточнить: отрезки все лежат на одной прямой, как на рисунке, или произвольным образом на плоскости?
Здравствуйте, Logot, Вы писали:
L>Добрый день.
L>Вот мучаюсь с алгоритмом, который должен определять, что отрезки пересекаются в одной плоскости, не поможете?
L>Вообщем, ситуация такая: L>есть несколько видов отрезков
L>
L>символами "|" я показал, что в этих местах они пересекаются. Как определить, что один отрезок пересекает другой для отсечения пересечения из одного из видов отрезков?
Отсортировать концы отрезков по координате Х, причем в итоговом массиве хранить признак конец/начало и ссылку на отрезок. И 1 раз пройтись по массиву считая пересечение следующей точки со всеми уже начатыми отрезками.
Здравствуйте, AK85, Вы писали:
AK>Отсортировать концы отрезков по координате Х, причем в итоговом массиве хранить признак конец/начало и ссылку на отрезок. И 1 раз пройтись по массиву считая пересечение следующей точки со всеми уже начатыми отрезками.
А зачем двупроходный алгоритм писать когда можно однопроходный написать?
Если линии не разделены на группы, то да.
А если разделены, то на вход Line1 надо подовать одну группу, на вход Line2 — другую, по очереди. Вообще для начала, надо подготовить структуры данных, наиболее подходящие для хранения и разделения линий. И уже писать алгоритм на основе этих структур.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]