呪文(プログラム)のあらまし

このページは SVG 画像を含んでいるので、 Firefox など SVG を表示できるブラウザーで見て下さい。


次に呪文(プログラム)のあらましを紹介します。 プログラムは基本的には上から下への順に命令を実行していきます。 しかし、条件判断やくり返しのための命令があると順番を飛ばしたり上に戻ったりすることがあります。

次のプログラム例は色を少しずつ変化させながら正方形を描いていくものです。

import static util.SVGTurtle.*;    /* ブックカバー描画用部品群の読み込み */

public class Test {   /* Testの部分はプログラムにより変わる */                 
    public static void main(String[] args) {                                   
        int i, j;         /* 変数 i, jの宣言 */
        int x0=44, y0=32; /* 変数 x, yの宣言 */

        start();   /* 描画の開始 */
        rulers();  /* 折り目の目安の線 */

        for (i=0; i<21; i++) { /* iの値を0〜20まで変えながら21回くり返す */
            for (j=0; j<15; j++) { /* jの値を0〜14まで変えながら15回くり返す*/
                fill(hsb100(i*5, j*100.0/14, 100)); /* ぬりつぶしの色を指定 */
                rect(x0+i*10, y0+j*10, 6, 6);       /* 正方形を描画 */
            }                      /* jのくり返し終わり */
        }                      /* iのくり返し終わり */

        fill(rgb255(40,80,40));             /* ぬりつぶしの色を指定 */
        textFont("Verdana", 4);             /* フォントを指定 */
        rotate(PI/2);                       /* 座標系を回転 */
        text("Kagawa University", 35, -10); /* 文字列を描画 */

        finish();  /* 描画の後始末 */
        return;                                                                 
    }                                                                           
}                                                                               

このプログラム例は Java という呪文体系(プログラミング言語)を使うものです。

上のプログラム例で背景が灰色になっているところは Java の約束事の部分なので書き換えないように注意してください。残りのところが実際に絵を描いている命令の集まりです。 たとえば fill は図形を塗りつぶすときの色を指定する命令、 rect は指定された位置とサイズで長方形を描く命令です。 また、text は文字列を描く命令です。この他にもたくさんの命令を用意していますので、 ブックカバー作成用関数解説を探してみてください。

/**/ の間はコメント(プログラムの説明)です。 このコメントも参考にしてプログラムのだいたいの意味をつかんでください。 そして、プログラム例の中の数や文字列("" の間)を書き換えて試してみてください。

次に C という呪文体系(プログラミング言語)を使うプログラム例を紹介します。

#include <stdio.h>                                                           
#include <math.h>                                                            
#include "svg.h"    /* ブックカバー描画用部品群の読み込み */

int main(void) {                                                             
    int i, j;         /* 変数 i, jの宣言 */
    int x0=44, y0=32; /* 変数 x, yの宣言 */

    start();   /* 描画の開始 */
    rulers();  /* 折り目の目安の線 */

    for (i=0; i<21; i++) { /* iの値を0〜20まで変えながら21回くり返す */
        for (j=0; j<15; j++) { /* jの値を0〜14まで変えながら15回くり返す*/
            fill(hsb100(i*5, j*100.0/14, 100)); /* ぬりつぶしの色を指定 */
            rect(x0+i*10, y0+j*10, 6, 6);       /* 正方形を描画 */
        }                      /* jのくり返し終わり */
    }                      /* iのくり返し終わり */

    fill(rgb255(40,80,40));             /* ぬりつぶしの色を指定 */
    textFont("Verdana", 4);             /* フォントを指定 */
    rotate(PI/2);                       /* 座標系を回転 */
    text("Kagawa University", 35, -10); /* 文字列を描画 */

    finish();  /* 描画の後始末 */
    return 0;                                                                
}                                                                            

やはりこのプログラム例で背景が灰色になっているところは C の約束事の部分なので書き換えないように注意してください。 残りのところが実際に絵を描いている命令の集まりです。

Java のプログラム例と良く似ていることがわかると思います。

位置やサイズを指定する単位はミリメートルです。文庫本サイズのブックカバーの場合、 A4 サイズの紙に印刷します。A4 サイズは縦 210 ミリメートル×横 297 ミリメートルです。 紙の左上の点の座標が (0,0) で、右下の点が (297, 210) になります。 描いた絵が本の表面に現れるようにするためには、(出版社や本の厚さにもよりますが)図形の x 座標がだいたい 40 から 257 の間、y座標が 28.5 から 181.5 の間になるようにします。

プログラムを作ることは本当はとても難しいことで、 大学生でも基本的なことを学ぶのに半年間はかかります。 くり返しの仕方など、数や文字列以外のところを変えてみたいと思ったら スタッフの大学生・大学院生に相談してみてください。 そのほかにも、わからないことがあったらスタッフの大学生・大学院生にどんどん聞いてください!


香川研究室