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

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

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

Сообщений: 11445


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

Ну так я в первом ответе вам это и написал, а m_ax в последнем. Улыбающийся

Еще в теме немного поучаствовал Верес, не не особо...
Поэтому я совершенно не понимаю, кто кроме вас начал запрягать QColor. Улыбающийся
А разве я говорил что результат должен быть в QColor? Более того, никто не мешал Вам подвергнуть суровой (и справедливой) критике сложение 2 QColor!

Это ж была провокация на китайско-финской границе (вполне успешная  Улыбающийся).
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



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

Я бы не стал для такого объекта, как цвет (ARGB) переопределять оператор +.
Во-первых, в отличии от вектора, для цвета нарушается коммутативность суммы:
например с1 + с2 + с3 неравно с1 + с3 + с2.
А это неожиданный для конечного пользователя результат уже может сломать ему мозг в поисках ошибки (а она рано или поздно случится)..
Согласен, но давайте смотреть ширше. Кто нас заставляет делать обрезку (вследствие чего получается неоднозначность)? Почему мы должны ютиться в рамках QColor который для этого совсем не предназначен? Давайте введем свой класс который не имеет проблем с арифметикой
Давайте введём) Например, QPoint таких проблем не имеет) И для него реализованы все арифметические операции)
Осталось научиться делать каст из QPoint в QColor и обратно Улыбающийся
« Последнее редактирование: Январь 29, 2013, 19:20 от m_ax » Записан

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

Arch Linux Plasma 5
Bepec
Гость
« Ответ #62 : Январь 29, 2013, 19:24 »

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

Так же видно, что это провокация.

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

Сообщений: 4350



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

А разве я говорил что результат должен быть в QColor? Более того, никто не мешал Вам подвергнуть суровой (и справедливой) критике сложение 2 QColor!
А почему это нужно было критиковать? Да к тому же заслуженно? Улыбающийся
Мы реализовали оператор для непонятной (по крайней мере мне) операции по предложенной вами математике, только и всего.
Критиковать математику? Я еще раз скажу - для меня до сих пор непонятна операция сложения двух цветов. Я бы делал оператор, даже для такой математики:
R = G * B;
G = R * B;
B = R * G;
Улыбающийся

Это ж была провокация на китайско-финской границе (вполне успешная  Улыбающийся).
В чем она заключалась? Улыбающийся
« Последнее редактирование: Январь 29, 2013, 19:48 от Old » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


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

Давайте введём) Например, QPoint таких проблем не имеет) И для него реализованы все арифметические операции)
Осталось научиться делать каст из QPoint в QColor и обратно Улыбающийся
А чего не std::valarray<T>?  Улыбающийся К сожалению, не проходит - альфа обрабатывается не однообразно. Конечно если такое стандартное есть - лучше его, но если нет - не умирать же  Улыбающийся

Я еще раз скажу - для меня до сих пор непонятна операция сложения двух цветов.
Так это самое обычное/рядовое дело. Напр Вам нужно заменить пиксель средним значением N соседей (заблюрить QImage). Или раскрасить что-то градиентом. Вот и нужна сначала сумма цветов.

Я бы делал оператор, даже для такой математики:
Ну для такой не надо Улыбающийся А вот чтобы Вы делали если нужно сложить/осреднить в HSV/HSL модели? Это имеет смысл, результаты могут быть лучше чем в RGB. Очевидно saturation и value вычисляются так же. Но что делать с hue?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



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

А вот чтобы Вы делали если нужно сложить/осреднить в HSV/HSL модели?
Я бы пошел читать теорию цветовых моделей. Улыбающийся
Записан
Страниц: 1 ... 3 4 [5]   Вверх
  Печать  
 
Перейти в:  


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