複素数を RGB ピクセルに、またはその逆にエンコードする方がよい方法は?
おそらく (の対数) 絶対値が明るさになり、引数が色相になります。
彩度の低いピクセルは、逆変換でランダム化された引数を受け取る必要があります。
何かのようなもの: 0 -> (0,0,0) 1 -> (255,0,0) -1 -> (0,255,255) 0.5 -> (128,0,0) 私 -> (255,255,0) -i -> (255,0,255) (0,0,0) -> 0 (255,255,255) -> e^(i * ランダム) (128,128,128) -> 0.5 * e^(i *ランダム) (0,128,128) -> -0.5
そのための既製の公式はありますか?
編集:RGBをHSBに変換して元に戻すだけでよいようです。
編集 2: 既存の RGB -> HSV コンバーター フラグメント:
もし (hsv.sat == 0) { hsv. 色相 = 0; // ! hsv を返します。 }
0 は必要ありません。ランダムが必要です。そしてhsv.sat==0
、 if だけでなく、それが本来あるべき値よりも低い場合 (「べき」とは、最大彩度、複素数からの変換後の彩度を意味します)。