/* HSV to RGB 変換関数 おこめ h:(0,1535) s,v:(0,255) ret:24bitGRB 参考:Oh!FM 1989.9 特集 爆走!! 趣味のC言語ライブラリ Part 6 あれやこれやの MISCライブラリ 歩野零一 */ int HSVtoRGB(int h, int s, int v) { int i,f, m,n,k; int r,g,b; i = (h / 256) % 6 ; f = ( h % 256 ) ; m = ( (v+1) * ( 255 - s ) ) /256 ; n = ( (v+1) * ( 255 - ( (s+1) * f ) /256 ) ) /256 ; k = ( (v+1) * ( 255 - ( (s+1) * ( 255 - f ) ) /256 )) /256 ; switch (i) { case 0: r = v ; g = k ; b = m ; break ; case 1: r = n ; g = v ; b = m ; break ; case 2: r = m ; g = v ; b = k ; break ; case 3: r = m ; g = n ; b = v ; break ; case 4: r = k ; g = m ; b = v ; break ; case 5: r = v ; g = m ; b = n ; break ; default: return ( -1 ) ; } return ( (g<<16) + (r<<8) + b ); }