
Výpočet barevného spektra pomocí RGB
Dobrý den,
Chtěl bych se zeptat zda někdo zná algoritmus na vykreslení barevného spektra.
Budu mít okno, které má nějakou šířku a do té šířky vykreslím barevné pixely tak že vznikne barevné spektrum(duha). Rád bych použil pro každou barvu pixelu metodu RGB, potřebuji tedy poradit jak spočítat konkrétní barevný kanál.
Jde spíše o matematiku než o konkrétní program. Někde jsem jej míval, vím že se používala funkce SIN, leč program se mi někam ztratil a do googlu jsem zkusil asi 30 ruzných pojmů avšak nikde jsem nic nenašel, ale je možné že jsem špatně zadal otázku pro strejdu googla. Případně kdo by mi poradil jak by měl vypadat dotaz do googla.
Předem děkuji za pomoc.
Jak bych měl ten problém popsat důkladněji?
Spektrum vypadá takto:
spectrum.jpg, je to spektrum viditelného záření. Kdybych chtěl rentgenové, nebo infračervené, nepsal bych RGB.
Ten obrázek na odkazu má nějakou šířku (a je jedno zda v pixelech, twipech, bodech a pod.). Já sice mám hotový obrázek, ale chci jej vykreslit programem na plátno (DF7-canvas, VB6-formulář,...) protože každý jazyk má jinou syntaxi.
Takže mi jde jen o ten matematický vzorec jak spočítat kanály R,G,B.
Na odpovědních odkazech jsem mimo jiné našel i toto:
z:=Round(x*255/lp);
r:=Round(255*cos(z*pi/512));
g:=Round(255*cos(z* pi/255-pi/2)) ;
b:=255-r;
a to mi stačilo k tomu abych si prohlídl zdroják a zjistil že lp=šířka okna(šířka obrázku), pi je jasný a x je souřadnice v kreslení.
Bohužel tento kód nedělá uplně přesně to co chci na odkaze, ale zkouším na něm různé úpravy.
Proto prosím znovu o odpověd, zda někdo nemá hotový zdrojový kód v podobně uvedeném tvaru.
Díky.
Přesné viditelné spektrum pomocí RGB nedokážeš udělat. Pokud ti jde jenom o aproximaci, tak třeba zde:
http://www.efg2.com/Lab/ScienceAndEngineering/Spec tra.htm