Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.10.2006, 02:47
Andrew_Drone вне форума Посмотреть профиль Отправить личное сообщение для Andrew_Drone Найти все сообщения от Andrew_Drone
  № 1  
Ответить с цитированием
Andrew_Drone
 
Аватар для Andrew_Drone

Регистрация: Jun 2006
Адрес: Kharkov, Ukraine
Сообщений: 14
Отправить сообщение для Andrew_Drone с помощью ICQ
По умолчанию Регулировка "яркости" RGB

хочу создать что-то типа Paint'овской палитры, а именно ту часть где выбирается произвольный цвет.
собственно, генерация цвета (ось Х) и его насыщенности (ось Y) проблем не составляют, а вот как реализовать регулировку яркости? Это тот ползунок что справа. Пробовал перемножать каждый канал на некий коэфициент - получил болт.
__________________
When you kill for money, there are no rules...

Старый 03.10.2006, 03:18
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
http://www.peterjoel.com/Samples/index.php
Зайти в пункт меню colour wheel
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 03.10.2006, 04:11
Andrew_Drone вне форума Посмотреть профиль Отправить личное сообщение для Andrew_Drone Найти все сообщения от Andrew_Drone
  № 3  
Ответить с цитированием
Andrew_Drone
 
Аватар для Andrew_Drone

Регистрация: Jun 2006
Адрес: Kharkov, Ukraine
Сообщений: 14
Отправить сообщение для Andrew_Drone с помощью ICQ
О, спасибо большое!
__________________
When you kill for money, there are no rules...

Старый 03.10.2006, 11:57
vic_ вне форума Посмотреть профиль Отправить личное сообщение для vic_ Посетить домашнюю страницу vic_ Найти все сообщения от vic_
  № 4  
Ответить с цитированием
vic_
 
Аватар для vic_

Регистрация: Sep 2006
Адрес: Zaporozhye, Ukraine
Сообщений: 141
вот еще класс, RGB-HLS-HSB
http://dev.etcs.ru/blog/as2/ru/etcs/draw/colorobject/

Старый 17.01.2007, 12:32
StrangeMan вне форума Посмотреть профиль Отправить личное сообщение для StrangeMan Найти все сообщения от StrangeMan
  № 5  
Ответить с цитированием
StrangeMan

Регистрация: Jul 2006
Сообщений: 72
подскажите я вот скопировал флэшку по вот этой ссылке http://www.peterjoel.com/Samples/index.php но почему то ни куда её встроить не могу.. подскажет в чём причина.. флэш пишет There is no method with the name 'HSB_to_RGB', либо There is no method with the name 'RGB_to_HSB' .. не могу понять я ведь всё копирую...

Старый 17.01.2007, 13:29
vic_ вне форума Посмотреть профиль Отправить личное сообщение для vic_ Посетить домашнюю страницу vic_ Найти все сообщения от vic_
  № 6  
Ответить с цитированием
vic_
 
Аватар для vic_

Регистрация: Sep 2006
Адрес: Zaporozhye, Ukraine
Сообщений: 141
http://www.peterjoel.com/Samples/pet..._colorproto.as

Старый 17.01.2007, 13:34
Llex3D вне форума Посмотреть профиль Отправить личное сообщение для Llex3D Найти все сообщения от Llex3D
  № 7  
Ответить с цитированием
Llex3D
 
Аватар для Llex3D

Регистрация: Oct 2004
Сообщений: 149
Прям от сердца оторвал

Код:
Color.prototype.RGBtoHSB (rgb:Number)
	{
		var R = (rgb&0xff0000)>>16;
		var G = (rgb&0xff00)>>8;
		var B = (rgb&0xff);
		
		var Br = Math.max(Math.max(R,G),B);
		var minVal = Math.min(Math.min(R,G),B);
		var delta = Br - minVal;
		
		if ( Br == 0 ) { S = 0 } else { S = delta/Br*100; }
		if ( S == 0) { H = 0 } else if (R == Br) { H = 60*(G-B)/delta } else if ( G == Br ) { H = 120+60*(B-R)/delta } else {
																		   H = 240+60*(R-G)/delta;}
		if ( H < 0) { H +=360 };
		return ([Math.round(H), Math.round(S), Math.round(Br/255*100)])
	}
	

Color.prototype.HSBtoRGB(H, S, Br)
	{		
		Br = Br/100*255;
		if ( S == 0) { 
			R = G = B = Br 
		} else {
			var resH = H/60-Math.floor(H/60);
			var bot = (Br*(1-S/100));
			var dec = (Br*(1-(S*resH)/100));
			var inc = (Br*(1-(S*(1-resH)/100)));
			
			switch (Math.floor(H/60)){
				case 0:	R = Br;	 G = inc; B = bot;	break;
				case 1:	R = dec; G = Br;  B = bot;	break;
				case 2:	R = bot; G = Br;  B = inc;	break;
				case 3:	R = bot; G = dec; B = Br;	break;
				case 4:	R = inc; G = bot; B = Br;	break;
				case 5:	R = Br;  G = bot; B = dec;	break;
			}
		}
		return Math.round(R)<<16|Math.round(G)<<8|Math.round(B);
	}
Вот, сделали рпототип для класса Color

Теперь к примеру для _root.circle подымим яркость на 10%

Код:
circleColor = new Color (_root.circle);
HSBColor = circleColor.RGBtoHSB(circleColor.getRGB())

circleColor.setRGB(circleColor.HSBtoRGB(HSBColor[0], HSBColor[1], (((HSBColor[2]+10) < 100 ) ? HSBColor[2]+10 : 100))
Вот, при этом мы проверили, если при увеличении на 10% будет больше 100%, то мы ставим 100%. Рекомендую проверять параметры при их присвоении:

HSBColor[0] - Hue - тон, может принимать значение от 0 до 359
HSBColor[1] - Saturation - насыщенность, может принимать значение от 0 и до 100
HSBColor[2] - Brightness - яркость, может принимать значени еот 0 до 100

Вроде бы всё правильно

Старый 17.01.2007, 21:21
Andrew_Drone вне форума Посмотреть профиль Отправить личное сообщение для Andrew_Drone Найти все сообщения от Andrew_Drone
  № 8  
Ответить с цитированием
Andrew_Drone
 
Аватар для Andrew_Drone

Регистрация: Jun 2006
Адрес: Kharkov, Ukraine
Сообщений: 14
Отправить сообщение для Andrew_Drone с помощью ICQ
а БЕЗ преобразования RGB -> HSB сабж невозможен в принципе?
__________________
When you kill for money, there are no rules...

Старый 17.01.2007, 21:34
vic_ вне форума Посмотреть профиль Отправить личное сообщение для vic_ Посетить домашнюю страницу vic_ Найти все сообщения от vic_
  № 9  
Ответить с цитированием
vic_
 
Аватар для vic_

Регистрация: Sep 2006
Адрес: Zaporozhye, Ukraine
Сообщений: 141
HSB - это цветовая модель, где по координатам отложены Hue, Saturation, Brightness. Она же HSV.
http://en.wikipedia.org/wiki/HSV_color_space
Вы ставите задачу - откорректировать положение точки по координате Brightness (Яркость). Нет проблем, но сначала надо перейти в эту модель из модели RGB.

Старый 18.01.2007, 06:03
Andrew_Drone вне форума Посмотреть профиль Отправить личное сообщение для Andrew_Drone Найти все сообщения от Andrew_Drone
  № 10  
Ответить с цитированием
Andrew_Drone
 
Аватар для Andrew_Drone

Регистрация: Jun 2006
Адрес: Kharkov, Ukraine
Сообщений: 14
Отправить сообщение для Andrew_Drone с помощью ICQ
изначально я имел в виду возможность увеличения/уменьшения значений RGB на некий процент используя какую-нибудь простейшую формулу
__________________
When you kill for money, there are no rules...

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:44.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 20:44.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.