Урок 153. Рисование. ColorFilter, ColorMatrix

Обсуждение уроков
Ответить
Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Урок 153. Рисование. ColorFilter, ColorMatrix

Сообщение damager82 » 28 июл 2014, 03:00

В этом уроке:
- меняем цвет кисти с помощью ColorFilter


Click here to read this article!
Последний раз редактировалось damager82 31 май 2017, 17:29, всего редактировалось 3 раза.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

valrti ptrovichh
Сообщения: 3
Зарегистрирован: 03 мар 2016, 15:51

Re: Урок 153. Рисование. ColorFilter, ColorMatrix

Сообщение valrti ptrovichh » 04 мар 2016, 00:15

Новые значения равны исходным. Т.е. матрица настроена так, что RGBA значения любого цвета вообще не изменятся. Убедимся в этом. Запускаем приложение
Результат:
Тут явно что-то не так. Появляется черный контур
Изображение
В чем может быть дело и как это исправить ?

Павел Кутузов
Сообщения: 1
Зарегистрирован: 19 фев 2017, 09:40

Re: Урок 153. Рисование. ColorFilter, ColorMatrix

Сообщение Павел Кутузов » 19 фев 2017, 11:14

Эффект от setRotate немного похож на этот: https://s-media-cache-ak0.pinimg.com/or ... 179c8a.jpg
Где "комната" это RGB-куб.
Только у нас зеркальный шар (шар-стробоскоп) должен быть цилиндром очень малого диаметра и стоять в углу (на цвета также не обращайте внимание они тут меняются в произвольном порядке).

В теле метода setRotate() реализуется этот процесс:

https://msdn.microsoft.com/ru-ru/library/9ya02xa6.aspx

Я так подозреваю что более-менее рабочий угол от -90 до 90 градусов.

При всех остальных углах преобразованный в пикселе цвет будет проекцией исходного цвета
на соответствующую плоскость, образованную базовой осью и осью цвета, к которому мы сдвигаем цвет точки.
И при этом он ещё будет подтянут синусом/косинусом (которые никогда не бывают больше 1)
к базовой оси.

Например, если принять за базовую ось ось синих цветов см.:
https://i-msdn.sec.s-msft.com/ru-ru/lib ... dd4f6.jpeg
то при изменении угла точка будет пробегать по контуру указанного здесь сектора.
При этом точки, близкие к плоскости синий-зеленый, уже при малых углах попадут на эту плоскость и далее будут только стягиваться к оси синих.
Точки же, находящиеся около плоскости синий-красный, будут двигаться по окружности к плоскости синий-зеленый, а далее опять же попадают на эту плоскость и стягиваются к оси синих.
Когда угол становится большим, чем угол, требующийся для попадания точки на ось синих(это 180+/-90 градусов для разных точек), то точка начинает отдаляться от оси синих уже по плоскости синий-красный, потом переходит на дугу нашего сектора и возвращается в исходное состояние при 360 градусах.

Если давать отрицательный угол, то всё описанное выше движение будет происходить в обратную сторону.

Вся картинка становится почти синей при 180 градусах, потому что все остальные цвета "стянуты" к оси синих с разных сторон (на плоскостях синий-зеленый и синий-красный) и при этом имеют малые составляющие других цветов.

waat
Сообщения: 52543
Зарегистрирован: 31 окт 2020, 05:30

Re: Урок 153. Рисование. ColorFilter, ColorMatrix

Сообщение waat » 07 ноя 2020, 14:17


waat
Сообщения: 52543
Зарегистрирован: 31 окт 2020, 05:30

Re: Урок 153. Рисование. ColorFilter, ColorMatrix

Сообщение waat » 10 дек 2020, 00:08

сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайт
сайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтсайтtuchkasсайтсайт

Ответить