Tips

明るい色と暗い色

日付2009/12/09
ID75954 (英語原文参照)
バージョン11
プラットフォームMac & Win

インタフェースをデザインする際、同じ色相(Hue)の明るい色と暗い色があると便利です。三属性でカラーを扱えば、比較的容易にこのことができます。

次のコードは、RGBで基準となるカラーのデータを受け取り、-1から1までの実数で明るさの度合いを決定します。-1を指定すればブラックになり、1を指定すればホワイトになります。RGB_to_HSLおよびHSL_to_RGBメソッドは#75949からのものです。

$1、$2、$3は0から255までのRGB値に対するポインタを渡してください。メソッド実行後、それぞれの新しい値が代入されます。$4は-1から1までの範囲で明るさの度合いを指定してください。

C_POINTER($1;$2;$3)
C_LONGINT($color_R_l;$color_G_l;$color_B_l;$color_H_l)
C_REAL($4;$shade_r;$color_S_r;$color_L_r)

$color_R_l:=$1->
$color_G_l:=$2->
$color_B_l:=$3->
$shade_r:=$4

RGB_to_HSL($color_R_l;$color_G_l;$color_B_l;->$color_H_l;->$color_S_r;->$color_L_r)

$color_L_r:=Choose($shade_r>0;$color_L_r/(1+$shade_r);
    Choose($color_L_r*(1-$shade_r)>1;1;$color_L_r*(1-$shade_r)))

$color_S_r:=Choose($shade_r<0;$color_S_r/(1-$shade_r);
    Choose($color_S_r*(1-$shade_r)<1;1;$color_S_r*(1-$shade_r)))

HSL_to_RGB($color_H_l;$color_S_r;$color_L_r;$1;$2;$3)