Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 15 дек 2017, 19:01

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Урок 153. Рисование. ColorFilter, ColorMatrix
СообщениеДобавлено: 28 июл 2014, 03:00 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 11:32
Сообщений: 1359
Благодарил (а): 0 раз.
Поблагодарили: 72 раз.

В этом уроке:


- меняем цвет кисти с помощью ColorFilter




Click here to read this article!

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Последний раз редактировалось damager82 31 май 2017, 17:29, всего редактировалось 3 раз(а).

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 04 мар 2016, 00:15 

Зарегистрирован: 03 мар 2016, 15:51
Сообщений: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Цитата:
Новые значения равны исходным. Т.е. матрица настроена так, что RGBA значения любого цвета вообще не изменятся. Убедимся в этом. Запускаем приложение
Результат:

Тут явно что-то не так. Появляется черный контур
Изображение
В чем может быть дело и как это исправить ?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 19 фев 2017, 11:14 

Зарегистрирован: 19 фев 2017, 09:40
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Эффект от 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 градусах, потому что все остальные цвета "стянуты" к оси синих с разных сторон (на плоскостях синий-зеленый и синий-красный) и при этом имеют малые составляющие других цветов.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB