色定数

線色や塗り色の説明やサンプルで、何の説明もなしに「赤色」や「青色」という名前を使ってきましたが、どんな日本語の色でも使えるわけではありません。「なでしこ」では次の「色」が定義されています。

  • 白色
  • 黒色
  • 赤色
  • 青色
  • 黄色
  • 緑色
  • 紫色
  • 水色

「茶色」や「灰色」はありそうですが定義されていないので使えません。

さらに、環境に依存するシステムカラーというものも使えます。例えば設定でデスクトップの背景色を変えれば、システムカラー「デスクトップ色」もその色に変わります。

  • ウィンドウ色
  • ウィンドウ背景色
  • ウィンドウ文字色
  • デスクトップ色
  • アクティブ色
  • 非アクティブ色

「色選択」命令

では上に列挙した色以外の色を使いたい場合はどうすればいいでしょう?一つの方法は、「色選択」命令を利用して好みの色を選び出すことです。

選択した色=色選択。
文字色は選択した色。
選択した色を表示。
選択した色を言う。# 色によっては分かりにくいので

「RGB」命令

上のサンプルを実行すると、整数が表示されました。実は、RGBカラーモデルといって、0から16777215までの整数で光の三原色の混合具合を表現しているのです。"RGB"は Red, Green, Blue の頭文字です。

RGBカラーモデルで色の番号を作るには、「RGB」命令を使います。「RGB(R,G,B)」と使います。引数 R, G, B には、それぞれ赤, 緑, 青の色の強さを 0 から 255 までの整数で指定します。

塗り色はRGB(128,255,0)。※黄緑色
100,100から200,200へ四角。

光の三原色の混合であることに注意してください。上の例では赤, 緑を 1:2 で明るく混合していますが、赤, 緑を 1:1 で明るく混合した色が黄色なので、茶色ではなく黄緑っぽい色になります。赤も緑も混合する量を減らすと、より暗い色、つまり茶色っぽい色になります。

16進法

なでしこでは、16進数を表現するのにドル記号"$"を用います。

$Fを言う。※16進法のFは、10進法で15

255 という数は、16進法では FF になります。つまり、RGBの引数にとった R や G の値域をなでしこの16進法表記で表すと「 $00 から $FF 」となります。16進法で2桁までということですね。実は「RGB」という命令は、「16進法で2桁まで」の3つの数を組み合わせて、「16進法で6桁まで」の数を作って返しているだけなのです。

ここで、なでしこエディタで「赤色」や「黄色」の定義値を調べてみましょう。すると、赤色の定義値は「$FF0000」で、黄色の定義値は「$FFFF00」となっています。$RRGGBBと、本当に単純に赤, 青, 緑と並べただけです。

線色は$FF8000。※ = RGB(255,128,0) ... 赤:緑=2:1で橙色
100,100から200,200へ線。

このように、分かりやすく手軽に色を指定することができます。

「HEX」命令

「色選択」で作った色のRGB比を知りたい場合があるかもしれませんね。色番号を16進法に直すことができれば、各桁の値を見るだけです。そこでずばり、10進法から16進法に直す命令が「HEX」です。「HEX(A)」と使います。

HEX(色選択)を言う。