2016-03-30 12 views
2

私は与えられたUIColor(Triadic、Analogues、Complementなど)でうまくいく色を生成したいと思います。カラーの色相を「回転させる」方法は?

私はthisthisthisのような投稿をたくさん読んでいます。最後の投稿では、回答者はeasyrgb.comに行くことを提案しました。 私はそこに行った。私は、これらのカラースキームを生成したい場合、ある程度の色相を「回転」させる必要があることを知りました。たとえば、Triadicカラーの場合、±120度回転させる必要があります。

私はgetHue(:saturation:brightness:)と呼んで色の色相を得ることができますが、どうすればそれを回転させることができますか?メソッドによって返される色相は数値ではありませんか? 0と1の間の数値ですか?これは私には意味がない!

私は最初の投稿に答えがあるかもしれないが、コードはPythonで書かれていると思う。私はかなりこれが何を意味するのか分からないので、私だけのpythonを少し学んだ:

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

コメントから、私はこの行は何とかD度によって色相を回転させることがわかります。しかし、私はその構文が何を意味するのか分からない。

どのように色相を回転させるか、または上記のコードを迅速に翻訳する方法を教えてもらえますか?

答えて

5

色相成分の範囲は0.0~1.0で、カラーホイールの0~360度の角度に相当します(Wikipedia: HSL and HSVを参照)。

n度、使用することにより色相成分を「回転させる」ために:fmod()機能が1.0の範囲0.0 加算結果を正規化するために使用される

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

補色色相は以下のようになり

let hueComplement = fmod(hue + 0.5, 1.0)