|
Виж темите без отговор | Виж активните теми
Дата и час: Вто Юли 28, 2026 1:18 am
RGB - алгоритъм за плавно преливане.
| Автор |
Съобщение |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
 RGB - алгоритъм за плавно преливане.
Имам следната хоби постановка. Трицветен светодиод, управлява се от микроконтролер, всеки цвят има 100 степени на яркостта. Искам да направя плавно преливане през всички цветови комбинации, като се почне от бяло та до черно. Да ви хрумва някакъв прост алгоритъм за целта?
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пон Авг 10, 2009 12:46 pm |
|
 |
|
sthx
Ранг: Форумен бог
Регистриран на: Съб Юни 24, 2006 8:25 pm Мнения: 2292
|
 Re: RGB - алгоритъм за плавно преливане.
Цветовата диаграма е двукоординатна, а не вектор. Трудно ще минеш демонстрационно през всички цветове. Трябва да направиш някакво ограничение.
_________________ Две плюс две е приблизително равно на четири. Факт!
|
| Пон Авг 10, 2009 1:01 pm |
|
 |
|
sthx
Ранг: Форумен бог
Регистриран на: Съб Юни 24, 2006 8:25 pm Мнения: 2292
|
 Re: RGB - алгоритъм за плавно преливане.
Цветовата диаграма е двукоординатна, а не вектор. Трудно ще минеш демонстрационно през всички цветове. Трябва да направиш някакво ограничение.
_________________ Две плюс две е приблизително равно на четири. Факт!
|
| Пон Авг 10, 2009 1:02 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
 Re: RGB - алгоритъм за плавно преливане.
Плавно с преливане теоретично май няма как да стане, обаче човешкото око както и човешкото ухо са доста непрецизни, или по скоро човешкият ум е твърде тъп, та може би е възможно да ги врътнеш някак за да получиш илизуя за плавно преминаване през всички цветове, нещо като ефекта с безконечните октави ....
|
| Пон Авг 10, 2009 1:23 pm |
|
 |
|
kiiid
Ранг: Почетен член
Регистриран на: Съб Сеп 24, 2005 2:00 pm Мнения: 787
|
for (r=0; r<100; r++)
for (g=0; g<100; g++)
for (b=0; b<100; b++) {
loadLEDvals(r,g,b);
delay(xxx);
}
|
| Пон Авг 10, 2009 1:35 pm |
|
 |
|
sthx
Ранг: Форумен бог
Регистриран на: Съб Юни 24, 2006 8:25 pm Мнения: 2292
|
Хвани някоя цветова палитра по вкус от Corel или друга рисувателна програмка и вземи RGB координатите на цветовете.
_________________ Две плюс две е приблизително равно на четири. Факт!
|
| Пон Авг 10, 2009 2:00 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Общо взето "дъгата" мисля че може да се докара. Ама наистина преливане през всички възможни цветове няма как да стане.
Kiid твоя алгоритъм ще извърти всичко, ама преливането..... няма да е много преливащо 
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пон Авг 10, 2009 2:09 pm |
|
 |
|
MYXATA
Ранг: Форумен бог
Регистриран на: Пон Юни 05, 2006 1:48 pm Мнения: 4906 Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
|
Не му разбирам много, но с плавно инкрементиране по трите цвята нема как да стане....
по добре първо си направи палитра
демек пробай комбинации от трите основни цвята за да си изкараш цветове, които ти харесват. то ще е състояние на и яркост на всеки от основните на цветодиода взети заедно  тях ги буташ в тримерен масив. за да си ги имаш готови
с така получената палитра от цветове, което ще е крайно множество си поиграй с широчинно импулсна модулация на готовия цвят за да докараш яркост на 100 степени 
_________________ ... ако трети ден не ти се работи... това означава, че е сряда !
|
| Пон Авг 10, 2009 2:18 pm |
|
 |
|
Wise
Ранг: Форумен бог
Регистриран на: Нед Дек 19, 2004 6:26 pm Мнения: 1628 Местоположение: Сливен
|
Тая работа без намесата на художник няма как да стане!
Не, че и тате не може, ама..................................она си сака пръчо
Работил съм с такива хора и придобих чувство за малоценност относно цветовете..........
С формула - не ми се вярва. По-вероятно е с таблица - показваш и той определя!
Ти заместваш, подреждаш........Той е пак недоволен................. 
|
| Пон Авг 10, 2009 2:32 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
Ами аок се търси наистина добър ефект освен някой човек на музата друг не мое ти помогне, ама трябва да внимаваш с тия, ако имаш по слаби нерви са напълно способни да те докарат до убийство. За PWM-a, 0-100 не е много, пустия светодиод не се регулира много линейно, може би преди това не е лошо да си калибрираш регулирането, какво имам в предвид, вземи от най-простат рисувателна програма различни отношение и ги задай съобразно твойта скала, виж колко са разминаванията при различни отношения, кофти е че тъпия светодиод не се регулира много добре, и като цяло скалата ти ще излезе предполагам поне наполовиат апо тясна, може би 6 бита, т.е. 18 битов цвят. Освен това ако нямаш допълнително регулиране на тока става още по зле защото нямаш никава яркост.
|
| Пон Авг 10, 2009 2:53 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Не става въпрос за професионално изпълнение. Хоби - домашна декорация. Един приятел си е направил някакво творение от светловоди и иска да стане шарено. Той разбира до там да ми каже - абе направи го нещо да мига, там да се преливат цветовете. И аз търся най простия и ефектен начин
не ми се мисли много 
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пон Авг 10, 2009 3:55 pm |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
Сега направих една проба с корела. Там има един миксер и ще ти свърши работа за алгоритъма.
1. Почваме от жълто : R=100, G=100, B=0
2. Към червено : намаляваме G с 1 докато стане 0 ; R=100, G=0, B=0
3. Към синьо : увеличаваме B с 1 и намаляваме R с 1 докато R=0, G=0, B=100
4. Към циан : увеличаваме G с 1 докато R=0, G=100, B=100
5. Към зелено : намаляваме B; R=0, G=100, B=0
6. Към жълто : увеличаваме R; R=100, G=100, B=0
Така обаче няма бяло - само цветове. Ако имаш Corel можеш да си поиграеш там с палитрите - може да излезе и някаква друга зависимост. Това гореописано прави нещо като дъга.
|
| Пон Авг 10, 2009 4:03 pm |
|
 |
|
zaphod
Ранг: Форумен бог
Регистриран на: Нед Юли 24, 2005 10:28 am Мнения: 2658
|
потърси в интернет за хилбертови криви, с тях ще стане гарантирано. те минават през всяка точка на равнина, скачайки само на съседни точки безда повтарят. ще трябва да си го пренапишеш за 3д, също е възможно.
има и други начини за обхождане в 3д, например със сноване напред-назад, но това е неприятно циклично.
|
| Пон Авг 10, 2009 4:44 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Да бе ей сега ще седна да пренаписвам за 3Д, как пък не.
Аз едвам се навих да лепна един PIC и три транзистора та да направя нещо въобще. Отде излишно време за игрички.
Просто питах ако някой е правил нещо елементарно да каже.
Засега ще гледат дъга.  Че май е най-просто. Оттам насетне да си търси някой друг със свободно време да твори код.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пон Авг 10, 2009 4:58 pm |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
Цецо, абстрахирай се от RGB, окото е по-толерантно настроено към яркост / наситеност / фаза ( не помня как се казваше точно терминът ... ) Но пак си е 3Д
|
| Пон Авг 10, 2009 4:59 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 3 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|