HSP3 プログラミングの基礎V | |
(1) グラフィックス
ウィンドウに直接、点や直線などを描画する基本的な命令について学習する。
命令 機能 pset カレントポジションにカレントカラーで点を描画する。 line 終点と始点を結ぶ直線を描画する。 circle 指定した四角形に収まる円を描画する。 boxf 塗りつぶしの四角形を描画する。
◎ 点 (pset)
座標(X, Y)にカレントカラーで点を描画する。座標を省略するとカレントポジションに点を描画する。
pset X座標, Y座標
カレントポジションはpos命令、カレントカラーはcolor命令で設定する。カレントカラーを設定する。赤、緑、青(RGB)の明るさを0〜255の範囲で指定する。
color 赤R, 緑G, 青B
座標(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)
始点(X2, Y2)と終点(X1, Y1)を結ぶ直線を描画する。描画後、終点(X1, Y1)がカレントポジションになる。
line X1, Y1, X2, Y2
始点(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)
座標(X1, Y1)と(X2, Y2)を対角線とする四角形に収まる円を描画する。
circle 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)
座標(X1, Y1)と(X2, Y2)を対角線とする四角形を塗りつぶしで描画する。
boxf 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 |