Ich habe schnelle Funktionen erstellt, wo ich Farbwert senden und Triadic und Tetraden Werte zurückgeben möchten. Es funktioniert irgendwie, aber ich bin nicht glücklich über die Farbergebnisse. Kann mir bitte jemand helfen, die Formel zu verfeinern?Computing komplementäre, triadic, tetradic und analagous Farben
Ich habe einige Quellen verfolgt, aber die zurückgegebenen Farben waren zu hell oder gesättigt im Vergleich zu mehreren Online-Web-basierten Farbschemata. Ich weiß, dass es auch eine Frage der Vorliebe ist und ich mag die Ergebnisse des unten stehenden Codes, aber in einigen Fällen von Farben ist das Ergebnis einer Farbe viel zu nah an der ursprünglichen Farbe, so dass es kaum sichtbar ist. Sie gilt nur für ein paar Farben ...
I wurde mit der Formel von hier:
meinen Code:
func getTriadColor(color: UIColor) -> (UIColor, UIColor){
var hue : CGFloat = 0
var saturation : CGFloat = 0
var brightness : CGFloat = 0
var alpha : CGFloat = 0
let triadHue = CGFloat(color.getHue(&hue, saturation: &saturation, brightness: &brightness, alpha: &alpha))
let triadColor1 = UIColor(hue: (triadHue + 0.33) - 1.0, saturation: saturation, brightness: brightness, alpha: alpha)
let triadColor2 = UIColor(hue: (triadHue + 0.66) - 1.0, saturation: saturation, brightness: brightness, alpha: alpha)
return (triadColor1, triadColor2)
}
func getTetradColor(color: UIColor) -> (UIColor, UIColor, UIColor){
var hue : CGFloat = 0
var saturation : CGFloat = 0
var brightness : CGFloat = 0
var alpha : CGFloat = 0
let tetradHue = CGFloat(color.getHue(&hue, saturation: &saturation, brightness: &brightness, alpha: &alpha))
let tetradColor1 = UIColor(hue: (tetradHue + 0.25) - 1.0, saturation: saturation, brightness: brightness, alpha: alpha)
let tetradColor2 = UIColor(hue: (tetradHue + 0.5) - 1.0, saturation: saturation, brightness: brightness, alpha: alpha)
let tetradColor3 = UIColor(hue: (tetradHue + 0.75) - 1.0, saturation: saturation, brightness: brightness, alpha: alpha)
return (tetradColor1, tetradColor2, tetradColor3)
}
Und ich schönen sauberen Code fand auch für die Suche nach Komplementärfarbe, über die ich mich sehr freue
func getComplementColor(color: UIColor) -> UIColor{
let ciColor = CIColor(color: color)
let compRed: CGFloat = 1.0 - ciColor.red
let compGreen: CGFloat = 1.0 - ciColor.green
let compBlue: CGFloat = 1.0 - ciColor.blue
return UIColor(red: compRed, green: compGreen, blue: compBlue, alpha: 1.0)
}
Sie haben bessere Ergebnisse dieses Posting zu http://codereview.stackexchange.com – rmaddy