RGBについての長男との対話

結城浩

2003年10月19日

結城「コンピュータのディスプレイではR, G, Bの3つの色を組み合わせて色を出している。R, G, Bって何だろう?」

長男「?」

結城「ヒント。R, G, Bは色の名前の頭文字だ」

長男「Rは…Red?」

結城「そうそう」

長男「GはGreen, BはBlueだね。あ、三原色だ」

結城「そのとおり。じゃあ、いま、R, G, Bそれぞれが0から15までの16通りあるとしよう。いいかな?」

長男「0から、だよね。うん、いいよ」

結城「R, G, Bのそれぞれ、0から15までの強さがある。いま、0, 0, 0のとき黒になる。では15, 15, 15のときは?」

長男「うーん、白?」

結城「そのとおり。じゃあね、8, 8, 8は?」

長男「何だろう…灰色?」

結城「はい、正解です。よくわかったね」

長男「だって白と黒の中間だもの」

結城「なるほどね。じゃあね、15, 0, 0は?」

長男「えええ? 何だろう…」

結城「え、何で考え込むの?」

長男「…赤?」

結城「はい、そうです。では8, 0, 0は?」

長男「…黒い赤?」

結城「そうだね、まあ「暗い赤」かな。次は難しいよ。ピンクを作りたかったらどうすればいいだろう。」

長男「どうするんだろう。1, 0, 0かな?」

結城「違う。ピンクってどうやって作る?」

長男「ええとね、赤と白を混ぜる」

結城「そうだね。答えを言うと、15, 8, 8はきっとピンクっぽくなるよ」

長男「どうしてどうして?」

結城「8, 8, 8は灰色でしょ。ここで赤のボリュームをちょっと上げる。赤の光を強くするわけだ。そうすると、ちょっと赤っぽい灰色になる。もっと強くすると、赤と白を混ぜた状態になるんじゃないだろうか」

長男「え、知らないの?」

結城「あとで、ブラウザでやってみようね。そうだ。16進数の話をしておこう。0から15は4ビットで表現できるね。でも、0, 1, 2, 3, 4, 5, 6, 7, 8, 9までいって10になると、二桁になってしまう。そこで、10の代わりにAという一文字を使おう、11の代わりにB, ..., 15の代わりにFを使う。そうすれば、0〜9, A〜Fで4ビットの数を表現できる」

長男「ふむふむ」

結城「そうすると、F, F, Fは白。F, 0, 0は赤になる。じゃあ紫は?」

長男「紫は…赤と青だから…F, 0, Fかな」

結城「大正解だ。じゃあね、黄色はどうやって作るかな?」

長男「赤と緑と青で黄色なんて作れないよ」

結城「いや、作れる。たぶんF, F, 0じゃないかな。あとでやってみようね。じゃあ、8, F, 0は?」

長男「わかんない」

結城「黄色のうち赤を少なくするということは、赤+緑のうち緑を強くすることだから、きっと、黄緑になるよ。さっそくやってみよう。」

0, 0, 0
F, F, F
8, 8, 8
F, 0, 0
F, 8, 8
F, 0, F
F, F, 0
8, F, 0