Показать сообщение отдельно
Старый 22.05.2008, 11:59
Alex_beginner вне форума Посмотреть профиль Отправить личное сообщение для Alex_beginner Найти все сообщения от Alex_beginner
  № 12  
Ответить с цитированием
Alex_beginner
 
Аватар для Alex_beginner

Регистрация: May 2008
Сообщений: 476
Wolsh !

Разъясняю.

В вашем варианте выполняется заливка триангла в 2 прохода путем совмещения 1 линейной и 1 радиальной заливки. Получается конечный продукт - триангл залитый тремя "градиентыми цветами".

Мой вариант - результат "почти" тот же, но выполняется в 3 прохода 3-мя линейнми градиентами.

Рассмотрим Ваш вариант.

По моим предположениям, область за гранью градиента, а именно
угловые точки a и b, а так же прилегающие к ним некоторые области не имеют корректные значения альфы, а следовательно, и цветовые составляющие(нетрудно выяснить, отключив линейный градиент).
Это обусловлено режимом заливки за границами градиента - "pad", т.е. градиент за границами заполняется крайним цветом градиента. Или другими словами градиента за границами радиала вообще нет, есть только однородный цвет(альфа). Из всего из этого можно сделать, печальный, но единственный вывод - цвета у облостей точек а и b искажены(правда несильно). Но в случае использвания данного триангла в качестве карты смещения для фильтра DisplacementMapFilter эти искажения будут фатальными.

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

Когда я найду подтверждение моего предположения на практике приложу код в массовое использование