crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

wiz29
  опции профиля:
сообщение 29.7.2010, 8:39
Сообщение #1


Старейший участник
****

Группа: Участник
Сообщений: 600
Регистрация: 7.7.2010
Из: Санкт-Петербург
Пользователь №: 1866

Спасибо сказали: 94 раз(а)




Репутация:   12  


Нужна помощь. Есть маска выбранной области, с помощью нее я получаю QPainterPath объект для ее (маски) границы, затем отображаю, для оч сложных границ это жрет уйму ресурсов, тк оч много точек в QPainterPathе. Может кто сталкивался с такой проблемой (подскажите как делать правильно)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
wiz29
  опции профиля:
сообщение 4.8.2010, 15:57
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 600
Регистрация: 7.7.2010
Из: Санкт-Петербург
Пользователь №: 1866

Спасибо сказали: 94 раз(а)




Репутация:   12  


решение очень простое, вкратце опишу идею, думаю код тут не уместен...
Вобщем все основано на QRegion(QBitmap&).
Создаем регион на основании битмапа, в битмапе "лежит" маска нужного нам контура. Получать битмап можно несколькими способами, но самый простой как мне кажется это свернуть маску селекшина с ядром оператора лапласа, получим четкие границы маски контура, ну, а далее дело техники:
устанавливаем полученный регион в качестве clipRegion в QPainter и делаем QPainter::drawTiledPixmap...
Надеюсь доступно, обращайтесь с вопросами, если не понятно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.6.2025, 10:41