混色に関するサンプルプログラムを作成しました。KZM872 で「発行」しました。

【図55 混色に関するプログラム】
(1) RGBの加法混色
光の3原色RGBを加法混色した図を表示サンプルです。サブルーチンColor_Add() で2つの色を加法混色しています。
(2) CMYの減法混色
絵具やインクなどの減法混色に関するサンプルです。この例ではプリンタや印刷のインクで使われるCMY(シアン、マゼンタ、イエロー)を使いました。サブルーチンColor_Subtract() で2つの色を減法混色しています。
(3) カラーピック(RGB, HSL, 系統色名の表示)
これまでのサンプルで作ったものを再利用しました。カラーピックの表示にはSmall BasicのShapeオブジェクトの機能を使って実現しています。今回はShape.SetOpacity() 操作を使い、カラーピックの表示を半透明にしました。この手法は以前の「どうぶつしょうぎ」のダイアログボックスでも使いました。サブルーチンColorPick_Init() と ColorPick_Show() で表示します。今回はColorPick_Show()の中に無限ループを入れてしまったので、プログラムの最後で呼ぶようにしています。
(4) ディスプレイのシミュレーション(並置加法混色)
RGBの長方形を並べてテレビやパソコンの画面をシミュレートしてみました。遠くから見れば左から白、赤、緑、黄色に見えると思います。
(5) グラデーション
2色のグラデーションを計算するサンプルです。赤と緑のグラデーションを表示しています。ちょうど中間の色は赤と緑を平均した色ですが、「暗い黄」になっています。サブルーチン Gradation_DrawRibbon() でグラデーションリボンを表示します。
今回は混色について学びました。
色については他にもカラーキューブ、ウェブセーフカラーや配色など、まだまだ話は尽きないのですが、色についてのプログラム作りは、このくらいにしておこうと思います。
次回からは時計について学ぶ予定です。
(つづく)
