Обсуждение статьи "Изучаем класс CCanvas. Реализация прозрачности графических объектов" - страница 7

 
Реter Konow:

Николай, мне сейчас не до цветов. Если в формуле есть ошибка, спасибо что подметил. Я сильно не проверял, - внедрил и забыл.

Хорошо бы твои знания и достижения в области канваса применить в чем то полезном. Подумай над этим.

Спасибо, что подсказал, а то у меня этой мысли даже не приходило :))
Ну а если серьезно, то меня очень удивляют твои слова. Бесполезные примеры - это лишь демонстрация возможностей. Опытный глаз всегда увидит много полезностей в, казалось бы, бесполезных вещах. И тебе ли не знать, что то, о чем я все время толкую, очень применимо как раз в очень полезных вещах. И все это я делаю исключительно для реализации полезных вещей. Просто я об этом не распространяюсь до того момента как закончу.

 
Nikolai Semko:

Спасибо, что подсказал, а то у меня этой мысли даже не приходило :))
Ну а если серьезно, то меня очень удивляют твои слова. Бесполезные примеры - это лишь демонстрация возможностей. Опытный глаз всегда увидит много полезностей в, казалось бы, бесполезных вещах. И тебе ли не знать, что то, о чем я все время толкую, очень применимо как раз в очень полезных вещах. И все это я делаю исключительно для реализации полезных вещей. Просто я об этом не распространяюсь до того момента как закончу.

Я и не говорил, что твои примеры бесполезны. Скорее, наоборот. Вопрос в том, когда ты их применишь в том самом полезном? То есть, ты создаешь обертку того полезного, которое еще нигде не показал. А что оно такое и для чего, - никому неизвестно. :))

 
Реter Konow:

Я и не говорил, что твои примеры бесполезны. Скорее, наоборот. Вопрос в том, когда ты их применишь в том самом полезном? То есть, ты создаешь обертку того полезного, которое еще нигде не показал. А что оно такое и для чего, - никому неизвестно. :))

Уж лучше сюрпризы, чем бег впереди поезда.
 
Nikolai Semko:

не то ...

речь о том, что существует Alpha1 и Alpha2

так же нужно рассчитывать кроме новообразующих цветов смешения еще и новообразующую прозрачность. 

...

Тут только немного математики на уровень 7-го класса средней школы. Получается длинный многочлен, его надо сократить. В итоге должен получится трехчлен. 

 
Nikolai Semko:
Уж лучше сюрпризы, чем бег впереди поезда.

Николай, все уже знают, что по Канвасу ты первый. Я не спорю. Подскажи, если знаешь, как получить назад цвет и альфу из конечного цвета, полученного от ColorToARGB()? Послали цвет и альфу, получили результат, а потом нужно из результата получить исходный цвет и альфу.

Как это сделать?

 
Реter Konow:

Николай, все уже знают, что по Канвасу ты первый. Я не спорю. Подскажи, если знаешь, как получить назад цвет и альфу из конечного цвета, полученного от ColorToARGB()? Послали цвет и альфу, получили результат, а потом нужно из результата получить исходный цвет и альфу.

Как это сделать?

Для меня загадка почему в ARGB из RGB меняются местами R и B. Но это факт.

Очень просто:

   color x=0x00112233;
   color y=ColorToARGB(x,0x44); 
   color z=ColorToARGB(y,0);
   uchar a=y>>24;

при отладке имеем:

z- искомый первоначальный RGB

a- первоначальная альфа.

можно также это сделать через юнион или сдвигами побайтово, но запись будет длинее.

ЗЫ когда известны составляющие цвета, я вообще не использую запись типа ColorToARGB(clrRed,48), а использую шестнадцатиричную форму записи 0x30FF0000(тоже самое что и ColorToARGB(clrRed,48)). Очень удобно, наглядно и быстрее.

 
Dmitry Fedoseev:

Тут только немного математики на уровень 7-го класса средней школы. Получается длинный многочлен, его надо сократить. В итоге должен получится трехчлен. 

если у гугле набрать в Images "многочлен" или "трехчлен" - вылезет много смешных картинок :))

 
Nikolai Semko:


Спасибо, помог.

 
Nikolai Semko:

если у гугле набрать в Images "многочлен" или "трехчлен" - вылезет много смешных картинок :))

Ага, а в яндекс-картинках такого безобразия нет.

 
Dmitry Fedoseev:

Тут только немного математики на уровень 7-го класса средней школы. Получается длинный многочлен, его надо сократить. В итоге должен получится трехчлен. 

Ну хоть ответьте на простой вопрос. 
Какая будет результирующая прозрачность двух прозрачных пикселей? Например прозрачность нижнего пикселя 0.4, а верхнего 0.5.
Можно по другому сформулировать этот вопрос:
Есть 2 затонировынных стекла. Одно пропускает 60 % света, а второе 50%. Сколько света они будут пропускать вместе соединенные?