#include "colours.h" float modulus (float a, float b) { float x; if (b == 0.) return 0.; x = a / b; x = ((x - ((int) x)) * b); if (x < 0.) x += b; return x; } float rOfH (float hue) { hue = modulus (hue, 360.); if ((0. <= hue && hue <= 60.) || (300. <= hue && hue <= 360.)) return 1.; else if (120. <= hue && hue <= 240.) return 0.; else if (240. < hue && hue < 300.) return (hue - 240.) / 60.; return (120. - hue) / 60.; } float gOfH (float hue) { hue = modulus (hue, 360.); if (60. <= hue && hue <= 180.) return 1.; else if ((240. <= hue && hue <= 360.) || hue == 0.) return 0.; else if (0. < hue && hue < 60.) return hue / 60.; return (240. - hue) / 60.; } float bOfH (float hue) { hue = modulus (hue, 360.); if (180. <= hue && hue <= 300.) return 1.; else if (0. <= hue && hue <= 120.) return 0.; else if (120. < hue && hue < 180.) return (hue - 120.) / 60.; return (360. - hue) / 60.; }