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

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

Страниц: [1] 2 3 ... 5   Вниз
  Печать  
Автор Тема: Сложить 2 QColor  (Прочитано 24971 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Январь 26, 2013, 10:52 »

Добрый день

Есть 2 QColor, как получить их сумму? (метода/оператора не видно)

Спасибо
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #1 : Январь 26, 2013, 11:58 »

Слишком не однозначное значение у "суммы цветов". Складывать компоненты RGB или CMYK?  Что делать при переполнении?
Поэтому, IMHO, "сумму цветов" оставили на совести конечных пользователей, так сказать как они это представляют.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Январь 26, 2013, 12:08 »

Слишком не однозначное значение у "суммы цветов". Складывать компоненты RGB или CMYK?  Что делать при переполнении?
Поэтому, IMHO, "сумму цветов" оставили на совести конечных пользователей, так сказать как они это представляют.
Складывать ARGB. При переполнении обрезать (клиппить). Словом: ARGB модель
« Последнее редактирование: Январь 26, 2013, 12:11 от Igors » Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #3 : Январь 26, 2013, 12:10 »

Складывать RGB. При переполнении обрезать (клиппить). Словом: RGB модель
Писать свои операторы.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Январь 26, 2013, 12:12 »

Писать свои операторы.
Прошу исполнить  Улыбающийся
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #5 : Январь 26, 2013, 12:14 »

Помню, эта тема уже как то обсуждалась на этом форуме.. Страниц на десяток с обсуждением (эмоциональным и рукомахательным) и вроде даже в конце пришли к чему то))  
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #6 : Январь 26, 2013, 12:17 »

Помню, эта тема уже как то обсуждалась на этом форуме.. Страниц на десяток с обсуждением (эмоциональным и рукомахательным) и вроде даже в конце пришли к чему то))  

А, не.. там три цвета нужно было сложить.. + ещё альфа канал учесть))
Так что, Old, советую сразу решать в общем виде с N цветами))
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #7 : Январь 26, 2013, 12:21 »

Прошу исполнить  Улыбающийся
Код
C++ (Qt)
QColor operator+( const QColor &a, const &b )
{
   return QColor( qBound( 0, a.red() + b.red(), 255 ), qBound( 0, a.green() + b.green(), 255 ), qBound( 0, a.blue() + b.blue(), 255 ) );
}
 

Что делать с альфой пока не знаю, если вы мне скажете какая она должна быть для "вашей суммы цветов", то я ее обязательно учту. Улыбающийся
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #8 : Январь 26, 2013, 12:26 »

Что делать с альфой пока не знаю, если вы мне скажете какая она должна быть для "вашей суммы цветов", то я ее обязательно учту. Улыбающийся
Альфа выходного цвета должна быть равна сумме альф слагаемых.

Помню, эта тема уже как то обсуждалась на этом форуме.. Страниц на десяток с обсуждением (эмоциональным и рукомахательным) и вроде даже в конце пришли к чему то)) 
Ну так наверное Вы и решение помните - вот и приведите  Улыбающийся

Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #9 : Январь 26, 2013, 12:29 »

Альфа выходного цвета должна быть равна сумме альф слагаемых.
Код
C++ (Qt)
QColor operator+( const QColor &a, const &b )
{
   return QColor( qBound( 0, a.red() + b.red(), 255 ), qBound( 0, a.green() + b.green(), 255 ), qBound( 0, a.blue() + b.blue(), 255 ), qBound( 0, a.alpha() + b.alpha(), 255 ) );
}
 
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #10 : Январь 26, 2013, 12:34 »

Код
C++ (Qt)
QColor operator+( const QColor &a, const &b )
{
   return QColor( qBound( 0, a.red() + b.red(), 255 ), qBound( 0, a.green() + b.green(), 255 ), qBound( 0, a.blue() + b.blue(), 255 ), qBound( 0, a.alpha() + b.alpha(), 255 ) );
}
 
Вот оказывается как все просто! А сомнений у Вас никаких не возникает?  Улыбающийся
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #11 : Январь 26, 2013, 12:36 »

Вот оказывается как все просто! А сомнений у Вас никаких не возникает?  Улыбающийся
У меня вообще возникает сомнение в целесообразности "складывания цветов". Улыбающийся
Записан
Bepec
Гость
« Ответ #12 : Январь 26, 2013, 12:41 »

Как обычно нет условий, по которым будут складываться цвета Улыбающийся

Видимо на это Igors  и намекает в очередной раз Веселый

PS а так да - простейшее сложении в простой форме.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #13 : Январь 26, 2013, 12:46 »

У меня вообще возникает сомнение в целесообразности "складывания цветов". Улыбающийся
Отчего же? Это банальная операция напр в популярном Photoshop'e

Как обычно нет условий, по которым будут складываться цвета Улыбающийся

Видимо на это Igors  и намекает в очередной раз Веселый

PS а так да - простейшее сложении в простой форме.
Я намекаю что если проверить предложенный оператор на 2 цветах - получите чепуху
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #14 : Январь 26, 2013, 12:49 »

Я намекаю что если проверить предложенный оператор на 2 цветах - получите чепуху
Дайте формула абсолютного топлива для расчета суммы цветов, будем проверять. Улыбающийся
Записан
Страниц: [1] 2 3 ... 5   Вверх
  Печать  
 
Перейти в:  


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