すのものの「いろいろ」(その145)

ソートの過程を色で表示する

前項の続きである。 「十色+数字」でなく、色だけで表現したらどうなるだろう?  それには、使いやすく、わかりやすい色を 100 種類用意する必要がある。

数値色番号近い色見本
00#ff0f0f#####
20#ffff0f#####
40#0fff0f#####
60#0fffffシアン#####
80#0f0fff#####
100#ff0fffマゼンタ#####

これは、前項の六角形から少しだけ番号を変えたものである。 あとはこの間を内分して色を決めることにしよう。 プログラムは出力関数だけを示す。残りは前と同じである。

/* 配列 a[0] ... a[N-1] を“色で”印字 */
void print(void) {
    int i;

    for (i = 0; i < N; i++) {
        printf("<font color=\"");
        switch(a[i] / 20) {
            case 0: printf("#ff%02x0f",  15 + a[i] % 20 * 12); break;
            case 1: printf("#%02xff0f", 255 - a[i] % 20 * 12); break;
            case 2: printf("#0fff%02x",  15 + a[i] % 20 * 12); break;
            case 3: printf("#0f%02xff", 255 - a[i] % 20 * 12); break;
            case 4: printf("#%02x0fff",  15 + a[i] % 20 * 12); break;
            default: ;
        }
        printf("\">#</font>");
    }
    printf("\n");
}

出力例を以下に示す。

####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################

2006-03-19 (0) 01:46:27 +0900


すのもの Sunomono