Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Смешение цветов (http://www.flasher.ru/forum/showthread.php?t=38504)

Nomad 16.10.2002 19:57

Смешение цветов
 
народ, я ламо но учусь.. есть вопрос - как смешивать цвета?
суть проблемы в следующем:
у меня набо кнопок, при нажатии на которые я задаю значение переменной _root.MyColor

например, нажав на красную кнопку я получаю
_root.myColor = 0xFF0000

теперь у меня есть мувик, который я крашу этим цветом

mc0.onPress = function() {
myColor = new Color(this);
myColor.setRGB(_root.myColor);
};

и всё у меня хорошо. но...
как сделать, чтобы цвета смешивались? те если я выберу сначала 0хFF0000 а потом нажму на кнопку 0хFFFFFF, то как сделать чтобы красный стал светлее?? те что то типа 0xFF9999 ?

смешивание не обязательно должно быть правильным.. может нужно просто складывать значения RGB в десятичной системе?

заранее признателен!

wwwita 17.10.2002 11:18

пробуй :D

на самом деле е совсем поятно что ты хочешь делать .... :confused:

если просто светлее тогда тебе подойдет лучше наверное Trasform *за точное название не ручаюсь* (там ещё альфа добавляется) ...... а так.... если просто смешение... то попробуй вычесть одно значение из другого (складывать лучше не стоит .. геморроя много) ....

Nomad 17.10.2002 12:15

есть линк. чтобы было понятнее, стоит поиграться с красками. мне очень нужно знать как там цвета смешиваются.

http://pbskids.org/sagwa/color/paint/index_paint.html

есть идеи?
вроде складывать значения RGB не катит. так например красный - r=255 g=0 b=0, а если сложить его с белым (r=o, g=0, b=0) то я не получу более светлого красного..

wwwita 17.10.2002 13:00

там весь прикол в кисточке :)

а цвета ... я же писал вроде что их по моему лучше вычитать ... так не очень запарно будет ....

что касается более белого ... то он будет ближе к FFFFFF а не к 000000 (это черный) ....
посмотри исходники ... там вроде что-то было подобное ....

derhab 17.10.2002 13:08

меняй просто динамически значения переменной _root.myColor, то есть если у тебя кнопка, то при нажатии на нее присваивай переменной новое значение.

ну а светлее открытый красный при таком способе изменения цвета по моему стать не может, только если ты изменишь альфу, а бэкграунд у тебя при этом белый. Вот если использовать процентные соотношения r, g, b тогда другое дело...

derhab 17.10.2002 14:12

прошу прощения:))), че то я запарился, альфа здесь не при чем, можно конечно высветлять цвет и так.

Nox Noctis 17.10.2002 15:37

чтобы осветлить цвет нужно всего лишь пропорционально увеличить значения RR, GG и BB...
чтобы сделать темнее, соответственно, наоборот...
типа вот так: (запустить и поелозить мышкой по сцене =) )
Код:

rgb = function (obj) {
        return (obj.r << 16 | obj.g << 8 | obj.b);
};
tellTarget (a=createEmptyMovieClip("test", 1)) {
        lineStyle(100);
        moveTo(50, 50);
        lineTo(50.15, 50);
        col = new Color(this);
        control = {r:255, g:0, b:0};
        fade = 1;
        col.setRGB(_root.rgb(control));
}
a.onMouseMove = function() {
        tellTarget (this) {
                control.g += fade;
                control.b += fade;
                col.setRGB(_root.rgb(control));
                if (!(control.g%255)) {
                        fade *= -1;
                }
        }
};


можно еще извратиться -
взять функцию, которая переводит значения цветов из RGB системы в систему HSB - тогда чтобы сделать цвет светлее-темнее нужно будет менять всего один параметр.

про HSB смотреть здесь =)

если тебе нужно не просто светлее-темнее - то тебе точно нужна система HSB: в радиальной палитре всего один параметр отвечает за оттенок цвета. то есть меняя один-единственный параметр можно получить любой из 16777215 цветов =)

Nomad 18.10.2002 18:32

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
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.