2016-03-30 15 views
2

Verilen bir UIColor (Triadic, Analogues, Complement vb.) Ile iyi giden renkler oluşturmak istiyorum.Bir rengin tonunu nasıl "döndürür"?

this ve this ve this gibi birçok yazı okudum. Son yazıda, cevapçı easyrgb.com'a gitmeyi önerdi. Ben de oraya gittim. Bu renk şemalarını oluşturmak istersem, tonu bir dereceye kadar "döndürmem" gerektiğini öğrendim. Örneğin, Triadic renkler için, onu ± 120 derece döndürmem gerekiyor.

getHue(:saturation:brightness:) numaralı telefonu arayarak bir renk tonu alabileceğimi biliyorum, ancak nasıl "döndürme" yapabilirim? Bu yöntem tarafından döndürülen renk bir sayı değil mi? 0 ile 1 arasında bir sayı mı? Bu bana mantıklı geliyor!

İlk yazının cevabı olabilir ama kod python ile yazılmıştır. Yorumlarınız itibaren

h = [(h+d) % 1 for d in (-d, d)]   # Rotation by d 

, bu hat bir şekilde d derece tonu döner görüyoruz: Oldukça bunun ne anlama geldiğini bilmiyorum bu yüzden sadece pitonun biraz öğrendim. Ama bu sözdiziminin ne anlama geldiğini bilmiyorum.

Herkes tonu nasıl döndüreceğimi söyleyebilir mi, yoksa yukarıdaki kodu hızlıca çevirebilir mi?

cevap

5

Renk tonu bileşeni 0,0 - 1,0 arasındadır, bu da bir renk tekerleğindeki 0º ile 360º arasındaki açıya karşılık gelir (Wikipedia: HSL and HSV'u karşılaştırın).

için "dönüşümlü" renk tonu bileşeni n tarafından derece, kullanım: fmod() fonksiyonu 1.0 aralığında 0.0 ek sonucunu normalleştirmek için kullanılan

let n = 120 // 120 degrees as an example 
hue = fmod(hue + CGFloat(n)/360.0, 1.0) 

.

tamamlayıcı renk tonu olacaktır

let hueComplement = fmod(hue + 0.5, 1.0) 
İlgili konular