public static CMYK RGBtoCMYK(RGB values) //http://www.easyrgb.com/index.php?X=MATH&H=13#text13 { CMY cmy = RGBtoCMY(values).Validate(); float k = Mathf.Min(1, cmy.c, cmy.m, cmy.y); float c = cmy.c; float m = cmy.m; float y = cmy.y; if (k > 0.997) { c = 0; } if (k > 0.997) { m = 0; } if (k > 0.997) { y = 0; } if (k > 0.003) { c = (cmy.c - k) / (1 - k); } if (k > 0.003) { m = (cmy.m - k) / (1 - k); } if (k > 0.003) { y = (cmy.y - k) / (1 - k); } return(new CMYK(c, m, y, k).Validate()); }
// Update is called once per frame void FixedUpdate() { if (currentTime > 0 && currentTime < clock.x) { wallColor = new Color(0f, 1f, 1f, 1f); lightcolor = CMY.Cyan; } else if (currentTime > clock.x && currentTime < clock.y) { wallColor = new Color(1f, 0f, 1f, 1f); lightcolor = CMY.Megenta; } else if (currentTime > clock.y && currentTime < clock.z) { wallColor = new Color(1f, 1f, 0f, 1f); lightcolor = CMY.Yellow; } else { currentTime = 0; } global.color = wallColor; currentTime += Time.fixedDeltaTime; }
public static RGB CMYtoRGB(CMY values) //http://www.easyrgb.com/index.php?X=MATH&H=12#text12 { CMY cmy = new CMY(values.c, values.m, values.y).Validate(); float r = 1 - cmy.c; float g = 1 - cmy.m; float b = 1 - cmy.y; return(new RGB(r, g, b).Validate()); }
/// ------------------------------------------------------------------------------------ public RGB Convert(CMY input) => new RGB(1.0 - input.C, 1.0 - input.M, 1.0 - input.Y);