明るい色と暗い色
日付 | 2009/12/09 |
---|---|
ID | 75954 (英語原文参照) |
バージョン | 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)