Название: QPolygonF и subtracted. Отправлено: solo700 от Январь 12, 2010, 16:33 Проблема в следующем ... Есть два полигона poly1 и poly2 - один внешний, другой внутренний, для простоты считаем, что второй целиком входит в первый.
Получаем третий путем вычитания второго из первого ... poly3=poly1.subtracted(poly2); ... добавляем на сцену polyItem1=scene_add->addPolygon(poly3, QPen(Qt::red), QBrush(Qt::blue)); ну и далее отображается на QGraphicsView. Если отображать результирующий полигон без контура а только заливкой ... вроде все нормально, но с контуром - внутренний и внешний полигон соединяются линией, что не есть хорошо. На Qt я перешел недавно и сужу по виндовой функции PolyPolygon() - в ней всё получается корректно (внешний и внутренний контуры не соединяются). Кто нибудь знает как это решить в Qt ? Конечно можно результирующий полигон сделать без контуров, а поверх него отрисовать внешний и внутренний только контурами - а более кординального решения нет ? Есть ещё одна проблема ... если результирующий полигон сделать QGraphicsItem::ItemIsMovable и цепануть его мышкой внутри там где вырезка то он благополучно перетащиться - что тоже я считаю неправильно. Название: Re: QPolygonF и subtracted. Отправлено: Rcus от Январь 12, 2010, 18:27 А мне кажется соединение контуров при использовании QPolygonF::subtracted более корректным :)
В данном же случае более подойдет QPainterPath::addPolygon, QGraphicsScene::addPath а что делать с перемещением... /*shrugs*/ Название: Re: QPolygonF и subtracted. Отправлено: solo700 от Январь 12, 2010, 19:43 Спасибо ! Попробую.
Название: Re: QPolygonF и subtracted. Отправлено: solo700 от Январь 12, 2010, 20:22 Получилось :)
|