Russian Qt Forum
Ноябрь 01, 2024, 08:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QPolygonF и subtracted.  (Прочитано 4306 раз)
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  и цепануть его мышкой внутри там где вырезка то он благополучно перетащиться - что тоже я считаю неправильно.


Записан
Rcus
Гость
« Ответ #1 : Январь 12, 2010, 18:27 »

А мне кажется соединение контуров при использовании QPolygonF::subtracted более корректным Улыбающийся
В данном же случае более подойдет QPainterPath::addPolygon, QGraphicsScene::addPath а что делать с перемещением... /*shrugs*/
Записан
solo700
Гость
« Ответ #2 : Январь 12, 2010, 19:43 »

Спасибо ! Попробую.
Записан
solo700
Гость
« Ответ #3 : Январь 12, 2010, 20:22 »

Получилось  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.255 секунд. Запросов: 20.