![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2010
Сообщений: 18
|
Подскажите пожалуйста каким образом можно создать баночку для смешивания красок для игры.
Цель игры разрисовать картинку, на экране 6 основных цветов: красный, жёлтый, зелёный, синий, белый, чёрный. Смысл баночки: кисточкой набираешь жёлтую краску, отправляешь в баночку, кисточкой набираешь красную краску - отправляешь в баночку - и в итоге рисуешь оранжевым. |
|
|||||
|
видимо, каждый канал обоих цветов складываем и делим на количество цветов
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 528
|
Скорее, не складываем, а вычитаем, если имеется в виду, что нужно имитировать живые краски.
|
|
|||||
|
Регистрация: Feb 2010
Сообщений: 18
|
Насколько я понимаю таким образом Вы предлагаете складывать?
В коде жёлтый + красный, в этом случае рисует жёлтым, т.е не получается или я не так понял. Добавлено через 1 минуту Цитата:
Буду разбираться. Добавлено через 9 минут Нашёл интересную статейку: http://stratum.ac.ru/textbooks/kgraf...l/addit30.html Пишут: Цвета одной системы являются дополнительными к другой: голубой — к красному, пурпурный — к зеленому, желтый — к синему. Дополнительный цвет — это разность белого и данного цвета: голубой - это белый минус красный, пурпурный — белый минус зеленый, желтый — белый минус синий. Хотя красный можно считать дополнительным к голубому, по традиции красный, зеленый и синий считаются основными цветами, а голубой, пурпурный, желтый — их дополнениями. Интересно, что в спектре радуги или призмы пурпурного цвета нет, то есть он порождается зрительной системой человека. Данный алгоритм работает! Сейчас буду искать подобный алгоритм нахождения для других цветов. |
|
|||||
|
Модрон-ветеринар
|
Всё таки цвета RGB поканально складываем и делим на количество.
Вычитание будет для проходящего света, например, при расчете прозрачного светофильтра. А для смешивания цветов при самосвечении или излучении света в отраженном белом, как в случае с "живой краской": color1 = new Color(mc1); color1.setRGB(0xFFFF00); color2 = new Color(mc2); color2.setRGB(0xFF0000); color3 = new Color(mc3); //FF = (FF + FF) / 2 //7F = (FF + 00) / 2 //00 = (00 + 00) / 2 color3.setRGB(0xFF7F00); Или даже Transform.colorTransform, хотя я не уверен, с этим методом не работал. UPD. Поправьте меня, если я не прав, сомнения что-то появились. "Оптику" я хоть и сдал на отлично, но это была "Физика" и оч.давно.
__________________
Идите первым! Последний раз редактировалось mooncar; 05.03.2011 в 02:53. |
|
|||||
import flash.display.BitmapData; var colors:Array = new Array(["0xFF0000"],["0x00FF00"],["0x0000FF"],["0xFFFF00"],["0x00FFFF"],["0xFF00FF"],["0xFFFFFF"]); for (item in colors) { var newColorBox:MovieClip = _root.attachMovie("colorbox","color"+item,_root.getNextHighestDepth()); newColorBox._y = 50; newColorBox._x = item*(newColorBox._width + 10) + (Stage.width-(newColorBox._width + 10)*(colors.length-1))/2; color = new Color(newColorBox); color.setRGB(colors[item].toString(16)); newColorBox.onPress = drags; newColorBox.onRelease = setfill; } function drags() { this._alpha = 50; this.startDrag(); } function setfill() { var imageBitmap:BitmapData = new BitmapData(Stage.width,Stage.height, true, 0x00000000) imageBitmap.draw(_root); colormix = new Color(banka); colormix.setRGB("0x"+imageBitmap.getPixel(banka._x,banka._y).toString(16)); this._alpha = 100; this.stopDrag(); }
__________________
return this... |
|
|||||
|
... а для CMYK?
)) |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 528
|
mooncar, поправлю.
Вы сами пишете, что складывание происходит при излучении. А краски - это не звёзды и не лампочки, они сами по себе не излучают. Почему падающий белый, отражается от красной краски красным? Потом что краска поглощает все цвета, кроме красного. Это можно представить как "светофильтр + зеркало". Проверку теории можно провести даже мысленно. Представьте, что у вас в руках красный, синий и зелёный фломастеры. Нарисуйте ими по очереди квадрат друг поверх друга. По вашей теории получится либо белый, либо 50% серого (я не совсем понял). Но если вы рисовали фломастерами - то помните, что на самом деле получится очень тёмное и очень грязное пятно. А если бы фломастеры были в действительности совсем непрозрачными - то мы бы получили абсолютно чёрный. Последний раз редактировалось Stargazer; 05.03.2011 в 13:44. |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:31. |
|
|
« Предыдущая тема | Следующая тема » |
|
|