В этом уроке:
- меняем цвет кисти с помощью ColorFilter
Click here to read this article!
Урок 153. Рисование. ColorFilter, ColorMatrix
Урок 153. Рисование. ColorFilter, ColorMatrix
Последний раз редактировалось damager82 31 май 2017, 17:29, всего редактировалось 3 раза.
-
- Сообщения: 3
- Зарегистрирован: 03 мар 2016, 15:51
Re: Урок 153. Рисование. ColorFilter, ColorMatrix
Тут явно что-то не так. Появляется черный контурНовые значения равны исходным. Т.е. матрица настроена так, что RGBA значения любого цвета вообще не изменятся. Убедимся в этом. Запускаем приложение
Результат:
В чем может быть дело и как это исправить ?
-
- Сообщения: 1
- Зарегистрирован: 19 фев 2017, 09:40
Re: Урок 153. Рисование. ColorFilter, ColorMatrix
Эффект от 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 градусах, потому что все остальные цвета "стянуты" к оси синих с разных сторон (на плоскостях синий-зеленый и синий-красный) и при этом имеют малые составляющие других цветов.
Где "комната" это 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 градусах, потому что все остальные цвета "стянуты" к оси синих с разных сторон (на плоскостях синий-зеленый и синий-красный) и при этом имеют малые составляющие других цветов.