Konvertálja a hsv-t az rgb-be, az embedder életét
Mindent ezzel a mixel kezdett:
Hallgattam rá, rájöttem, hogy új vezérlőre van szükségem az RGB-LED szalaghoz. Ezek a dolgok, ha valaki emlékszik rám delalalis de becsületes átalakítás HSV -> RGB nem volt ott -, hanem egy egyszerű felsorolás színek árnyalatjele. Most rájöttem, hogy feltétlenül szükségem van a három összetevő becsületes átalakítására. 🙂
Elmentem a Google-ba, és nem mondtam, hogy a keresésem teljesen haszontalan volt - mindkét képletet és számos implementációt találtam. A probléma csak az volt, hogy mind a képleteket, mind a megvalósításokat lebegőpontra tervezték, és én persze egész számtani aritmetikai érdeklődést kértem. Teljes számok megvalósítása, amelyeket rendeznék, soha nem találtam.
Általában, ha valami jól akarsz csinálni - csináld magad. Először a képletet akartam átalakítani. hozzátéve megfelelő skálázási tényező azonban meggyötört egy ideig, én köpni ezt a tevékenységet, és egyszerűen átírja az eredeti képlet valós fix pont.
Az alábbiakban találhatók a listák hsv2rgb.h és hsv2rgb.c - túl lusta vagyok letölteni az archívummal.
A modul tartalmaz egy egész számot (egy fix ponttal) és egy lebegőpontos végrehajtást. Ezek összeállítását függetlenül tartalmazza a megfelelő meghatározások. A bónusz valójában egy fix ponttal végzett műveletek végrehajtása.
Az fp_HSV2RGB (...) lebegőpontos végrehajtás.
Az fxp_HSV2RGB (...) végrehajtása rögzített ponttal.