1#include "colorspaces.hpp"
12 double min, max, delta;
14 min = in.r < in.g ? in.r : in.g;
15 min = min < in.b ? min : in.b;
17 max = in.r > in.g ? in.r : in.g;
18 max = max > in.b ? max : in.b;
29 out.s = (delta / max);
38 out.h = ( in.g - in.b ) / delta;
41 out.h = 2.0 + ( in.b - in.r ) / delta;
43 out.h = 4.0 + ( in.r - in.g ) / delta;
56 double hh, p, q, t, ff;
67 if(hh >= 360.0) hh = 0.0;
71 p = in.v * (1.0 - in.s);
72 q = in.v * (1.0 - (in.s * ff));
73 t = in.v * (1.0 - (in.s * (1.0 - ff)));
112rgb fromRGB(
int r,
int g,
int b)
114 return { r/255.0, g/255.0, b/255.0 };
118 return (
double)std::rand() / ((double)RAND_MAX + 1);
123 return (rgb){ randd(), randd(), randd() };