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

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

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

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
По умолчанию RGB <-> HSB

кто знает алгоритм преобразования цвета из RGB в HSB и обратно

hue-цвет(0-360), saturation-насыщенность(0-1), brightness-яркость(0-1)

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

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
вот картинка

Старый 10.10.2005, 06:40
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 3  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
ccылка по теме http://corfix.use.pl/

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Код:
Color.prototype.setHSB = function(colHSB){
	var hue = (colHSB.H == null) ? 0 : (360+colHSB.H)%360;
	var sat = (colHSB.S == null) ? 100 : colHSB.S;
	var bri = (colHSB.B == null) ? 100 : colHSB.B;
	this.setRGB(Color.HSB_to_RGB({H:hue,S:sat,B:bri}));
}

Color.prototype.getHSB = function(){
	return Color.RGB_to_HSB(this.getRGB());
}

Color.RGB_to_HSB = function(colRGB){

	var red = (colRGB&0xFF0000)>>16;
	var gre = (colRGB&0x00FF00)>>8;
	var blu = colRGB&0x0000FF;

	var max = Math.max(red,Math.max(gre,blu));
	var min = Math.min(red,Math.min(gre,blu));

	var colHSB = {}
	colHSB.B = Math.round(max*100/255);

	if(max==min){ // if grey
		colHSB.S = 0;
		colHSB.H = 0;
	}else{
		colHSB.S = Math.round(100*(max-min)/max);
		// find hue
		var hue;
		var tmpR = (max-red)/(max-min);
		var tmpG = (max-gre)/(max-min);
		var tmpB = (max-blu)/(max-min);
		if(red==max){
			hue = tmpB - tmpG;
		}else if(gre==max){
			hue = 2 + tmpR - tmpB;
		}else if(blu==max){
			hue = 4 + tmpG - tmpR;
		}
		colHSB.H = (Math.round(hue*60) + 360)%360;
	}

	return colHSB;

}

Color.HSB_to_RGB = function(colHSB){
	var sat = colHSB.S;
	var bri = colHSB.B;

	var red, gre, blu;
	// if grey don't bother doing any more
	if(sat==0){
		red = bri;
		gre = bri;
		blu = bri;
	}else{

		var hue = (colHSB.H+360)%360;
		var hue2 = Math.floor(hue/60);

		var dif = (hue%60)/60;
		var mid1 = bri*(100-sat*dif)/100;
		var mid2 = bri*(100-sat*(1-dif))/100;
		var min = bri*(100-sat)/100;

		if(hue2 == 0){
			red = bri;
			gre = mid2;
			blu = min;
		}else if(hue2 == 1){
			red = mid1;
			gre = bri;
			blu = min;
		}else if(hue2 == 2){
			red = min;
			gre = bri;
			blu = mid2;
		}else if(hue2 == 3){
			red = min;
			gre = mid1;
			blu = bri;
		}else if(hue2 == 4){
			red = mid2;
			gre = min;
			blu = bri;
		}else{
			red = bri;
			gre = min;
			blu = mid1;
		}
	}
	return (Math.round(red*255/100)<<16 | Math.round(gre*255/100) <<8 | Math.round(blu*255/100));
}
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 10.10.2005, 18:46
Ion вне форума Посмотреть профиль Найти все сообщения от Ion
  № 5  
Ответить с цитированием
Ion
Banned

Регистрация: Jun 2005
Сообщений: 1,805
А что делают оператор >> и функция Math.min и Math.max

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

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
1. >> бинарный сдвиг влево 4>>1 тоже самое что 4/2, подробности поищи поиском по форуму, недавно рассказывал об этом.
2. Math.max возвращает наибольшее из двух чисел, а Math.min соответсвенно минимальное
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 11.10.2005, 18:01
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 7  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
iNils, спасибо тебе

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

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

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


 


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


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