通过所有 RGB 颜色渐变
Gradient through all RGB colors
我正在尝试通过所有 rgb 颜色组合及其补色创建流畅的颜色过渡,目前我的尝试是:
var count = x // this is the index of the current color
var red = CGFloat((count >> 16) & 0xFF)/255.0;
var green = CGFloat((count >> 8) & 0xFF)/255.0;
var blue = CGFloat((count) & 0xFF)/255.0;
var color = UIColor(red: red, green: green, blue: blue, alpha: 1.0)
var complement = UIColor(red: 1.0-red, green: 1.0-green, blue: 1.0-blue, alpha: 1.0)
这种方法的问题在于,在每 255 种颜色之后,'nearly' 全黑屏幕就会出现一个中断,因为下一个红色索引会递增,所有其他索引都从 0 开始。
我的愿望是遍历所有颜色而没有任何'jumps'。这甚至可能吗? (颜色的顺序并不重要——也就是说,我们从红色或蓝色或绿色、黑色或白色开始并不重要。)
可能不是您要的答案,因为它不是基于 RGB 值的 - 但如果您想遍历所有颜色,为什么不使用 HSB?
红色:
UIColor(hue: 0.0, saturation: 1.0, brightness: 1.0, alpha: 1.0)
青色:
UIColor(hue: 0.5, saturation: 1.0, brightness: 1.0, alpha: 1.0)
再次变红:
UIColor(hue: 1.0, saturation: 1.0, brightness: 1.0, alpha: 1.0)
更新:
这是一个例子,如何获得给定色调值的补色。
var hueValue: CGFloat = 0.75 // change this value (min 0.0, max 1.0)
var complementaryHueValue: CGFloat = (hueValue + 0.5) % 1.0 // you could also write (1.0 - hueValue)
UIColor(hue: hueValue, saturation: 1.0, brightness: 1.0, alpha: 1.0)
UIColor(hue: complementaryHueValue, saturation: 1.0, brightness: 1.0, alpha: 1.0)
我正在尝试通过所有 rgb 颜色组合及其补色创建流畅的颜色过渡,目前我的尝试是:
var count = x // this is the index of the current color
var red = CGFloat((count >> 16) & 0xFF)/255.0;
var green = CGFloat((count >> 8) & 0xFF)/255.0;
var blue = CGFloat((count) & 0xFF)/255.0;
var color = UIColor(red: red, green: green, blue: blue, alpha: 1.0)
var complement = UIColor(red: 1.0-red, green: 1.0-green, blue: 1.0-blue, alpha: 1.0)
这种方法的问题在于,在每 255 种颜色之后,'nearly' 全黑屏幕就会出现一个中断,因为下一个红色索引会递增,所有其他索引都从 0 开始。
我的愿望是遍历所有颜色而没有任何'jumps'。这甚至可能吗? (颜色的顺序并不重要——也就是说,我们从红色或蓝色或绿色、黑色或白色开始并不重要。)
可能不是您要的答案,因为它不是基于 RGB 值的 - 但如果您想遍历所有颜色,为什么不使用 HSB?
红色:
UIColor(hue: 0.0, saturation: 1.0, brightness: 1.0, alpha: 1.0)
青色:
UIColor(hue: 0.5, saturation: 1.0, brightness: 1.0, alpha: 1.0)
再次变红:
UIColor(hue: 1.0, saturation: 1.0, brightness: 1.0, alpha: 1.0)
更新: 这是一个例子,如何获得给定色调值的补色。
var hueValue: CGFloat = 0.75 // change this value (min 0.0, max 1.0)
var complementaryHueValue: CGFloat = (hueValue + 0.5) % 1.0 // you could also write (1.0 - hueValue)
UIColor(hue: hueValue, saturation: 1.0, brightness: 1.0, alpha: 1.0)
UIColor(hue: complementaryHueValue, saturation: 1.0, brightness: 1.0, alpha: 1.0)