![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
wiz29 |
![]()
Сообщение
#1
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: ![]() ![]() ![]() |
Нужна помощь. Есть маска выбранной области, с помощью нее я получаю QPainterPath объект для ее (маски) границы, затем отображаю, для оч сложных границ это жрет уйму ресурсов, тк оч много точек в QPainterPathе. Может кто сталкивался с такой проблемой (подскажите как делать правильно)
|
|
|
![]() |
wiz29 |
![]()
Сообщение
#2
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: ![]() ![]() ![]() |
решение очень простое, вкратце опишу идею, думаю код тут не уместен...
Вобщем все основано на QRegion(QBitmap&). Создаем регион на основании битмапа, в битмапе "лежит" маска нужного нам контура. Получать битмап можно несколькими способами, но самый простой как мне кажется это свернуть маску селекшина с ядром оператора лапласа, получим четкие границы маски контура, ну, а далее дело техники: устанавливаем полученный регион в качестве clipRegion в QPainter и делаем QPainter::drawTiledPixmap... Надеюсь доступно, обращайтесь с вопросами, если не понятно. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 10.6.2025, 10:41 |