Проблема в следующем ... Есть два полигона poly1 и poly2 - один внешний, другой внутренний, для простоты считаем, что второй целиком входит в первый. Получаем третий путем вычитания второго из первого ... poly3=poly1.subtracted(poly2); ... добавляем на сцену polyItem1=scene_add->addPolygon(poly3, QPen(Qt::red), QBrush(Qt::blue)); ну и далее отображается на QGraphicsView. Если отображать результирующий полигон без контура а только заливкой ... вроде все нормально, но с контуром - внутренний и внешний полигон соединяются линией, что не есть хорошо. На Qt я перешел недавно и сужу по виндовой функции PolyPolygon() - в ней всё получается корректно (внешний и внутренний контуры не соединяются). Кто нибудь знает как это решить в Qt ? Конечно можно результирующий полигон сделать без контуров, а поверх него отрисовать внешний и внутренний только контурами - а более кординального решения нет ? Есть ещё одна проблема ... если результирующий полигон сделать QGraphicsItem::ItemIsMovable и цепануть его мышкой внутри там где вырезка то он благополучно перетащиться - что тоже я считаю неправильно.
|