void ARGBColor::SetValue(double newVal) { double hue; double sat; double val; GetHSV(hue, sat, val); SetHSV(hue, sat, newVal); }
void ARGBColor::SetSaturation(double newSat) { double hue; double sat; double val; GetHSV(hue, sat, val); SetHSV(hue, newSat, val); }
void ARGBColor::SetHue(double newHue) { double hue; double sat; double val; GetHSV(hue, sat, val); SetHSV(newHue, sat, val); }
EXPORT CColourPicker::CColourPicker(HWND hParentWindow, unsigned short r, unsigned short g, unsigned short b, unsigned short a, bool IsRGB) { if (IsRGB) SetRGB(r, g, b); else SetHSV(r, g, b); SetAlpha(a); OldCol = CurrCol; hParent = hParentWindow; }
int main(){ const int dimx = 800; const int dimy = 800; const double rmi = -2; const double rma = 2; const double imi = -2; const double ima = 2; FILE * fp = fopen("complex.ppm","wb"); fprintf(fp,"P6\n%d %d\n255\n",dimx,dimy); int i,j; for(j=0;j<dimy;++j){ double im = ima - (ima-imi)*j/(dimy-1); for(i=0;i<dimx;++i){ double re = rma - (rma-rmi)*i/(dimx-1); complex<double> c(re,im); complex<double> v = fun(c); double a = arg(v); while(a<0) a += 2*PI; a /= 2*PI; double m = abs(v); double ranges = 0; double rangee = 1; while(m>rangee){ ranges = rangee; rangee *= E; } double k = (m-ranges)/(rangee-ranges); double sat = k<0.5 ? k*2: 1 - (k-0.5)*2; sat = 1 - pow( (1-sat), 3); sat = 0.4 + sat*0.6; double val = k<0.5 ? k*2: 1 - (k-0.5)*2; val = 1 - val; val = 1 - pow( (1-val), 3); val = 0.6 + val*0.4; static unsigned char color[3]; SetHSV(a,sat,val,color); fwrite(color,1,3,fp); } } fclose(fp); return 0; }
void Color::SetSaturation(const glm::float32& sat) { glm::f32vec4 hsv = GetHSV(); hsv.y = sat; SetHSV(hsv); }
void Color::SetHue(const glm::float32& hue) { glm::f32vec4 hsv = GetHSV(); hsv.x = hue; SetHSV(hsv); }
void Color::SetValue(const glm::float32& val) { glm::f32vec4 hsv = GetHSV(); hsv.z = val; SetHSV(hsv); }
void wxColourExt::HsvValue(float v) { HsvValue(); SetHSV(H1,S1,v); }
void wxColourExt::HsvSaturation(float s) { HsvSaturation(); SetHSV(H1,s,V1); }
void wxColourExt::HsvHue(float h) { HsvHue(); SetHSV(h,S1,V1); }
void ExpandedLEDSerialControllerMega::SetMode (Mode mode) { switch (mode) { case kRed: SetRed (255); SetGreen (); SetBlue (); SetWhite (); break; case kBlue: SetRed (); SetGreen (); SetBlue (255); SetWhite (); break; case kGreen: SetRed (); SetGreen (255); SetBlue (); SetWhite (); break; case kYellow: SetRed (255); SetGreen (255); SetBlue (); SetWhite (); break; case kMagenta: SetRed (255); SetGreen (); SetBlue (255); SetWhite (); break; case kCyan: SetRed (); SetGreen (255); SetBlue (255); SetWhite (); break; case kOrange: SetRed (255); SetGreen (63); SetBlue (); SetWhite (); break; case kPurple: SetRed (127); SetGreen (); SetBlue (255); SetWhite (); break; case kWhite: SetRed (); SetGreen (); SetBlue (); SetWhite (255); break; case kCycle: SetWhite(); SetHSV ((double(millis() % (loopSeconds * 1000)) / double(loopSeconds * 1000)), 1, 1); break; case kRainbow: { unsigned long timeStamp = (millis() % 8000); if (timeStamp < 1000) { SetRed (255); SetGreen (0); SetBlue (0); SetWhite(); } else if (timeStamp < 2000) { SetRed (255); SetGreen (31); SetBlue (0); SetWhite(); } else if (timeStamp < 3000) { SetRed (255); SetGreen (150); SetBlue (0); SetWhite(); } else if (timeStamp < 4000) { SetRed (0); SetGreen (255); SetBlue (0); SetWhite(); } else if (timeStamp < 5000) { SetRed (0); SetGreen (255); SetBlue (255); SetWhite(); } else if (timeStamp < 6000) { SetRed (0); SetGreen (0); SetBlue (255); SetWhite(); } else if (timeStamp < 7000) { SetRed (127); SetGreen (0); SetBlue (255); SetWhite(); } else { SetRed (255); SetGreen (0); SetBlue (255); SetWhite(); } } break; default: SetRed (0); SetGreen (0); SetBlue (0); SetWhite(); break; } }