HSP3 プログラミングの基礎V
前へ 目次へ 次へ 

(1) グラフィックス

 ウィンドウに直接、点や直線などを描画する基本的な命令について学習する。

命令 機能
pset  カレントポジションにカレントカラーで点を描画する。
line  終点と始点を結ぶ直線を描画する。
circle  指定した四角形に収まる円を描画する。
boxf  塗りつぶしの四角形を描画する。

 

点 (pset)

pset X座標, Y座標
 座標(X, Y)にカレントカラーで点を描画する。座標を省略するとカレントポジションに点を描画する。
 カレントポジションはpos命令、カレントカラーはcolor命令で設定する。
color 赤R, 緑G, 青B
 カレントカラーを設定する。赤、緑、青(RGB)の明るさを0〜255の範囲で指定する。

 

サンプル座標(100, 100)、(101, 100)、(100, 101)、(101, 101)の4カ所に点を描画する。

    x = 100 : y = 100
    pset x, y    ;点の描画
    pset x+1, y
    pset x, y+1
    pset x+1, y+1
    stop

実行黒色の点が描画される。

試してみよう赤色で描画する。

    x = 100 : y = 100
    color 255, 0, 0    ;カレントカラーの設定(RGB)
    pset x, y
    pset x+1, y
    pset x, y+1
    pset x+1, y+1
    stop

実行赤色の点が描画される。

 

サンプルウィンドウ上にランダムに点を100個描画する。

    randomize       ;乱数初期化
    repeat 100
        r = rnd(256) : g = rnd(256) : b = rnd(256)      ;乱数発生
        color r, g, b
        x = rnd(640) : y = rnd(480)
        pset x, y : pset x+1, y : pset x, y+1 : pset x+1, y+1
    loop
    stop

実行ウィンドウ上に100個の点が描画される。

 カレントカラーは赤、緑、青(RGB)の明るさを0〜255の範囲で指定するので、rnd(256)で0〜255の範囲の乱数を発生させている。同じように、ウィンドウは幅(X)×高さ(Y)が640×480なので、点を描画する座標をそれぞれの範囲内で乱数を発生させている。
 一つの点では見えにくいので前のサンプルと同じように4つの点を描画している。



直線 (line)

line X1, Y1, X2, Y2
 始点(X2, Y2)と終点(X1, Y1)を結ぶ直線を描画する。描画後、終点(X1, Y1)がカレントポジションになる。
 始点(X2, Y2)を省略するとカレントポジションと終点(X1, Y1)を結ぶ直線を描画する。

 

サンプル座標(100, 100)と(200, 200)を結ぶ直線を描画する。

    line 100, 100, 200, 200    ;直線の描画
    stop

実行黒色の斜め線が描画される。

 始点と終点の指示がないので、line 200, 200, 100, 100でも良い。

試してみよう緑色で描画する。

    color 0, 255, 0    ;カレントカラーの設定(RGB)
    line 100, 100, 200, 200
    stop

実行緑色の斜め線が描画される。

 

サンプルウィンドウ上にランダムに直線を100本描画する。

    randomize       ;乱数初期化
    repeat 100
        r = rnd(256) : g = rnd(256) : b = rnd(256)      ;乱数発生
        color r, g, b
        x1 = rnd(640) : y1 = rnd(480)
        x2 = rnd(640) : y2 = rnd(480)
        line x1, y1, x2, y2
    loop
    stop

実行ウィンドウ上に100本の直線が描画される。

試してみよう始点(X2, Y2)を省略して描画する。

    randomize       ;乱数初期化
    repeat 100
        r = rnd(256) : g = rnd(256) : b = rnd(256)      ;乱数発生
        color r, g, b
        x1 = rnd(640) : y1 = rnd(480)
        ;x2 = rnd(640) : y2 = rnd(480)
        line x1, y1 ;, x2, y2
    loop
    stop

実行ウィンドウ上に100本の直線がつながった状態で描画される。

 ウィンドウの左上、座標(0, 0)から描画が始まっている。



円 (circle)

circle X1, Y1, X2, Y2, モード
 座標(X1, Y1)と(X2, Y2)を対角線とする四角形に収まる円を描画する。
 モードは、0で輪郭だけ、1で塗りつぶしの円を描画する。省略すると塗りつぶしになる。

 

サンプル座標(100, 100)と(200, 200)を対角線とする四角形に収まる円を描画する。

    circle 100, 100, 200, 200   ;円の描画(塗りつぶし)
    stop

実行黒色で塗りつぶされた円が描画される。

試してみよう青色で描画する。

    color 0, 0, 255    ;カレントカラーの設定(RGB)
    circle 100, 100, 200, 200
    stop

実行青色の塗りつぶされた円が描画される。

試してみよう座標(X2, Y2)を省略する。

    color 0, 0, 255
    circle 100, 100 ;, 200, 200
    stop

実行座標(X1, Y1)からウィンドウ右下までを対角線とする四角形に収まる青色の塗りつぶされた円が描画される。

 

サンプルウィンドウ上にランダムに円を100個描画する。

    randomize       ;乱数初期化
    repeat 100
        r = rnd(256) : g = rnd(256) : b = rnd(256)      ;乱数発生
        color r, g, b
        x1 = rnd(640) : y1 = rnd(480)
        x2 = rnd(640) : y2 = rnd(480)
        circle x1, y1, x2, y2, 0      ;円の輪郭だけを描画
    loop
    stop

実行ウィンドウ上に100個の塗りつぶしなしの円が描画される。



四角形 (boxf)

boxf X1, Y1, X2, Y2
 座標(X1, Y1)と(X2, Y2)を対角線とする四角形を塗りつぶしで描画する。

 

サンプル座標(100, 100)と(200, 200)を対角線とする四角形を描画する。

    boxf 100, 100, 200, 200        ;四角形の描画(塗りつぶし)
    stop

実行黒色で塗りつぶされた四角形が描画される。

試してみよう黄色で描画する。

    color 255, 255, 0    ;カレントカラーの設定(RGB)
    boxf 100, 100, 200, 200
    stop

実行黄色の塗りつぶされた四角形が描画される。

試してみよう座標(X2, Y2)を省略する。

    color 255, 255, 0
    boxf 100, 100 ;, 200, 200
    stop

実行座標(X1, Y1)からウィンドウ右下までを対角線とする黄色の塗りつぶされた四角形が描画される。

 

サンプルウィンドウ上にランダムに四角形を100個描画する。

    randomize       ;乱数初期化
    repeat 100
        r = rnd(256) : g = rnd(256) : b = rnd(256)      ;乱数発生
        color r, g, b
        x1 = rnd(640) : y1 = rnd(480)
        x2 = rnd(640) : y2 = rnd(480)
        boxf x1, y1, x2, y2
    loop
    stop

実行ウィンドウ上に100個の四角形が描画される。


前へ 目次へ 次へ 
2006  © Hiroshi Masuda 

 

 

inserted by FC2 system