Название: определить пересечение полигонов Отправлено: qwerky от Октябрь 29, 2009, 17:17 что возвратит QPolygon.intersected(polygon) если при пересечении получается несколько замкнутых полигонов ?
Название: Re: определить пересечение полигонов Отправлено: Igors от Октябрь 29, 2009, 17:54 что возвратит QPolygon.intersected(polygon) если при пересечении получается несколько замкнутых полигонов ? Ничего хорошего не возвратит. Такая ситуация возможна только если один из полигонов не конвексный (имеет внутренние углы > 180). Значит нужно разбить такие полигоны на 2 или более конвексных и затем искать пересечения. Название: Re: определить пересечение полигонов Отправлено: qwerky от Октябрь 29, 2009, 18:05 понятно.
обрабатываю введенный пользователем полигон. значит нужна дополнительная защита от дурака (нормализация полигона или еще что). Название: Re: определить пересечение полигонов Отправлено: Igors от Октябрь 29, 2009, 18:24 понятно. Человек захотел нарисовать "П" - почему он дурак и зачем от этого защищаться? :) "Еще что" может отсутствовать и придется вспоминать геометрию.обрабатываю введенный пользователем полигон. значит нужна дополнительная защита от дурака (нормализация полигона или еще что). Название: Re: определить пересечение полигонов Отправлено: qwerky от Октябрь 31, 2009, 08:41 оставил только проверку на сложность (пересечение граней полигона), думаю этого будет достаточно.
|