Кисточка., Как сделать? |
Здравствуйте, гость ( Вход | Регистрация )
Кисточка., Как сделать? |
holmuk |
2.8.2011, 9:14
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 2.8.2011 Пользователь №: 2780 Спасибо сказали: 0 раз(а) Репутация: 0 |
Мне вот захотелось сделать кисточку в своей программе, как в фотошопе. Я так понимаю, что берется и qpaint'ом рисуется круг и при нажатии кнопки эти круги рисуются с большой частотой. Как это реализовать?
|
|
|
wiz29 |
2.8.2011, 11:12
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
Сама кисть обычно реализуется как некая картинка (QImage) заданного размера, содержимое этой картинки, как правило, альфаканал видимой части области, далее подобная штука используется как шаблон при рисовании содержимого на картинку назначения, но это только в общих чертах и в самом простом варианте
|
|
|
holmuk |
2.8.2011, 11:26
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 2.8.2011 Пользователь №: 2780 Спасибо сказали: 0 раз(а) Репутация: 0 |
Сама кисть обычно реализуется как некая картинка (QImage) заданного размера, содержимое этой картинки, как правило, альфаканал видимой части области, далее подобная штука используется как шаблон при рисовании содержимого на картинку назначения, но это только в общих чертах и в самом простом варианте Щелк-картинка, щелк-картинка, а как сделать так, чтобы с высокой частотой картинки рисовались? Извините, что я такой тупой... |
|
|
wiz29 |
2.8.2011, 12:27
Сообщение
#4
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
Щелк-картинка, щелк-картинка, а как сделать так, чтобы с высокой частотой картинки рисовались? Готовых средств в Qt как ты понимаешь нет для решение таких задач, тебе нужно писать подобное самому. Самый простой способ, сделать некий рисовальщик, который бы обводил заданную пользователем траекторию, выбранной (ну или заданной) кистью. Схематично нужно реализовать следующее: 1. В Gui потоке заполняешь некий QPainterPath (например) получая события о положениях мыши 2. В Отдельном потоке рисуешь в заданную картинку отпечатки кисти с определенной частотой на траектории, обычно частота (расстояние между центрами кистей) определяется в %х от размера кисти (если говорить про Photoshop) 3. В Gui выводишь обновленные данные это в общих чертах. |
|
|
Litkevich Yuriy |
2.8.2011, 17:37
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Сама кисть обычно реализуется как некая картинка (QImage) заданного размера нет это просто новый курсор создаётся на основе рисунка.Щелк-картинка, щелк-картинка а если не "щёлк, щёлк", а "надавливаем кнопку мыши, тянем мышь, отпускаем кнопку мыши", тогда как ты представляешь внутренний процесс?
|
|
|
holmuk |
2.8.2011, 18:23
Сообщение
#6
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 2.8.2011 Пользователь №: 2780 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
wiz29 |
3.8.2011, 8:24
Сообщение
#7
|
Старейший участник Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: 12 |
Сама кисть обычно реализуется как некая картинка (QImage) заданного размера нет это просто новый курсор создаётся на основе рисунка.Интересно, а как рисовать курсором на картинке? (ну например заданной текстурой, или с динамическим изменением размера), а если размер кисти 1к на 1к пикселей? |
|
|
Litkevich Yuriy |
3.8.2011, 17:58
Сообщение
#8
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
holmuk, изучи внимательно (!) пример -Scribble (examples\widgets\scribble) из комплекта Qt.
|
|
|
holmuk |
4.8.2011, 10:53
Сообщение
#9
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 2.8.2011 Пользователь №: 2780 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
ilyabvt |
4.8.2011, 17:10
Сообщение
#10
|
Активный участник Группа: Участник Сообщений: 297 Регистрация: 23.6.2011 Пользователь №: 2765 Спасибо сказали: 45 раз(а) Репутация: 3 |
|
|
|
Текстовая версия | Сейчас: 19.4.2024, 6:08 |