#include #include"modulo.h" //for modulo関数 //HSBからRGBへ変換する関数 //戻り値:RGBをCOLORREF型で表現したもの COLORREF HSBtoRGB(double H,double S,double B) { double max,min; double hue; double r,g,b; H=modulo(H,360); //H:色相 0〜359 S=(S<0)?0:(S>255)?255:S; //S:彩度 0〜255 B=(B<0)?0:(B>255)?255:B; //B:明度 0〜255 max=B; min=max-S*max/255; hue=H; if(hue<60){ r=max; g=min+hue*(max-min)/60; b=min; }else if(hue<120){ r=max-(hue-60)*(max-min)/60; g=max; b=min; }else if(hue<180){ r=min; g=max; b=min+(hue-120)*(max-min)/60; }else if(hue<240){ r=min; g=max-(hue-180)*(max-min)/60; b=max; }else if(hue<300){ r=min+(hue-240)*(max-min)/60; g=min; b=max; }else{ //hue<360 r=max; g=min; b=max-(hue-300)*(max-min)/60; } return RGB((int)r,(int)g,(int)b); }