![]() |
Смешение цветов
народ, я ламо но учусь.. есть вопрос - как смешивать цвета?
суть проблемы в следующем: у меня набо кнопок, при нажатии на которые я задаю значение переменной _root.MyColor например, нажав на красную кнопку я получаю _root.myColor = 0xFF0000 теперь у меня есть мувик, который я крашу этим цветом mc0.onPress = function() { myColor = new Color(this); myColor.setRGB(_root.myColor); }; и всё у меня хорошо. но... как сделать, чтобы цвета смешивались? те если я выберу сначала 0хFF0000 а потом нажму на кнопку 0хFFFFFF, то как сделать чтобы красный стал светлее?? те что то типа 0xFF9999 ? смешивание не обязательно должно быть правильным.. может нужно просто складывать значения RGB в десятичной системе? заранее признателен! |
пробуй :D
на самом деле е совсем поятно что ты хочешь делать .... :confused: если просто светлее тогда тебе подойдет лучше наверное Trasform *за точное название не ручаюсь* (там ещё альфа добавляется) ...... а так.... если просто смешение... то попробуй вычесть одно значение из другого (складывать лучше не стоит .. геморроя много) .... |
есть линк. чтобы было понятнее, стоит поиграться с красками. мне очень нужно знать как там цвета смешиваются.
http://pbskids.org/sagwa/color/paint/index_paint.html есть идеи? вроде складывать значения RGB не катит. так например красный - r=255 g=0 b=0, а если сложить его с белым (r=o, g=0, b=0) то я не получу более светлого красного.. |
там весь прикол в кисточке :)
а цвета ... я же писал вроде что их по моему лучше вычитать ... так не очень запарно будет .... что касается более белого ... то он будет ближе к FFFFFF а не к 000000 (это черный) .... посмотри исходники ... там вроде что-то было подобное .... |
меняй просто динамически значения переменной _root.myColor, то есть если у тебя кнопка, то при нажатии на нее присваивай переменной новое значение.
ну а светлее открытый красный при таком способе изменения цвета по моему стать не может, только если ты изменишь альфу, а бэкграунд у тебя при этом белый. Вот если использовать процентные соотношения r, g, b тогда другое дело... |
прошу прощения:))), че то я запарился, альфа здесь не при чем, можно конечно высветлять цвет и так.
|
чтобы осветлить цвет нужно всего лишь пропорционально увеличить значения RR, GG и BB...
чтобы сделать темнее, соответственно, наоборот... типа вот так: (запустить и поелозить мышкой по сцене =) ) Код:
rgb = function (obj) {можно еще извратиться - взять функцию, которая переводит значения цветов из RGB системы в систему HSB - тогда чтобы сделать цвет светлее-темнее нужно будет менять всего один параметр. про HSB смотреть здесь =) если тебе нужно не просто светлее-темнее - то тебе точно нужна система HSB: в радиальной палитре всего один параметр отвечает за оттенок цвета. то есть меняя один-единственный параметр можно получить любой из 16777215 цветов =) |
2 Nox Noctis
это всё прикольно, но тк я ламо то найти применения пока этому ещё не смог.
у меня проблема в том, что мне нужно именно смешивать два цвета. осветление красного это просто пример.. плз глянь сюда - http://pbskids.org/sagwa/color/paint/index_paint.html - мож ты знаешь каким макаром там краски мешаются? те там ты можешь сначала выбрать красный, а потом если нажмёшь на белый, красный начёт светлеть. чтобы получить белый надо нажать на кнопку несколько раз подряд.. плз, посомтри линк... может ты поймёшь о чём я |
| Часовой пояс GMT +4, время: 23:24. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.