|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.08.2015, 15:16 | #1 |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
Qt рисование. залить ограниченую область
Qt
Как залить другим цветом произвольную ограниченную область? вот два изображения -исходное и что должно получится |
03.08.2015, 16:51 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
|
03.08.2015, 17:24 | #3 |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
но это наверно очень медленно?
|
03.08.2015, 21:06 | #4 |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
Иначе никак. Фигура ведь произвольная... может быть и шариком и квадратиком.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
|
03.08.2015, 21:20 | #5 |
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
В WinAPI GDI32 есть clipping region. Например SelectClipRgn(). Не поверю что в QT нет аналога, хоть и не работал с ним.
А руками делать - это уже как сами сделаете, можно и быстро. |
03.08.2015, 21:55 | #6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Для сложных регионов заполнение не сильно быстрее будет.
Кроме того, регион еще создать надо - тоже задача не из тривиальных. В Windows регионы - это набор упорядоченных прямоугольников. Вот и прикиньте, сколько прямоугольников нужны для описания треугольника. Собственно, для создания произвольного региона надо будет проверить каждый пиксель, что не сильно отличается от flood fill алгоритма. |
04.08.2015, 00:31 | #7 |
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
С чего вдруг прямоугольников? А как тогда по-вашему работают?:
CreatePolygonRgn CreateRoundRectRgn CreateEllipticRgn И работа с даже довольно сложными регионами никогда и никак не замедляло. А вообще я забыл про ExtFloodFill() в WinAPI есть, тогда как в таком крутом QT нет аналога? Какая IDE? Версия QT? |
04.08.2015, 01:44 | #9 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
Зная точки фигуры, можно поступить так:
Код:
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Последний раз редактировалось Krasiosoft; 04.08.2015 в 01:56. |
04.08.2015, 07:27 | #10 |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
А что если -
найти границу области, заполнить ее координатами массив отрезков (тут одновременно надо экстраполировать). А Из этих отрезков рисовать закрашенный полигон, это нарисовать можно средствами Qt. Не знаю, может так быстрее будет? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Залить на форум | misher | О форуме и сайтах клуба | 5 | 15.08.2010 11:44 |
Залить на народ. | misher | Свободное общение | 2 | 21.07.2010 22:27 |
Залить файл на sendspace | RIO | Работа с сетью в Delphi | 4 | 20.06.2010 01:18 |
Залить сайт | Дініс | Свободное общение | 12 | 20.12.2009 14:28 |
Залить цветом область. | gusluk | Мультимедиа в Delphi | 3 | 31.10.2009 05:58 |