↓このページからプログラムをダウンロードする。
◎自分のPCの種類、OSのバージョンに合うものを選択する。
*アップル製のコンピュータなら、MAC(intel)を選択する。
*ダウンロードしてできるアイコンには「BASIC」と表示される。
◎フォルダの中身を確認する。
Applications の BASICJa フォルダを見る。
例 FRACTAL のフォルダを見る。
→ JULIA.BAS を選択し、下の OPEN ボタンを押す。
*これでプログラムが読み込まれた。
ウィンドウの▲(実行)ボタンを押すとプログラムが走る。
◎プログラムを終了するときは上部のアップルマークとなりにある「BASIC」を押し、「Quit basic」を選択する。
◎プログラム例をコピー&ペーストできる。
↑こちらの「受講生連絡ボード」にあるプログラム例をコピーして貼り付ける。
◎これから扱う数字・アルファベットはすべて「半角」です。
◎自分で書いたプログラムを保存したい時は、プログラムのウィンドウを出して(クリックして)
から「ファイル→名前を付けて保存→アルファベットの名前(保存場所を確認)」を入力して保存する。
*一時的に保存するなら「デスクトップ」が便利。
◎座標系の設定
SET WINDOW文は,描画領域に座標系を導入する。
SET WINDOW 左端 , 右端 , 下端 , 上端
BASICでは,描画領域の形状は原則として正方形。
サンプルとして左端 x座標が 0,右端 x座標が 500,下端 y座標が 0,上端 y座標が 500となる座標系を作ってみる。
SET WINDOW 0,500,0,500
END
◎線を引く
PLOT LINES文は,指定された点を,順次,線分で結んでいく。
PLOT LINES: x1,y1 ;x2,y2
座標(x1,y1)から(x2,y2)までを線で結ぶ。セミコロン;でつなげば、線を延長できる。
サンプルとして(50,250)と(450,250)を線で結んでみる。
SET WINDOW 0,500,0,500
PLOT LINES:50 ,250 ;450,250
END
◎多角形を描く
多角形は線を結んで描く。
*三角形のサンプル
SET WINDOW 0,500,0,500
PLOT LINES:250,450;50 ,250 ;450,250; 250,450
END
*直線の座標に加えて、頂点の座標(250,450)を入れたので三角形になる。
*一筆書きになるので、最後に始点の座標を書くことを忘れないで。
*四角形のサンプル
SET WINDOW 0,500,0,500
PLOT LINES:50,450;50 ,250 ;450,250; 450,450;50,450
END
*一筆書きになるので、最後に始点の座標を書くことを忘れないで。
◎円を描く
DRAW circle WITH SCALE(r)*SHIFT(x,y)
rは円の半径。x,yは中心の位置を示す座標
*円のサンプル
*(250,250)を中心に半径50の円を描いてみる。
SET WINDOW 0,500,0,500
DRAW circle WITH SCALE(50)*SHIFT(250,250)
END
◎塗りつぶし円を描く
DRAW disk WITH SCALE(r)*SHIFT(x,y)
circle が disk に変わっている。座標と半径は同じ。
*(250,250)を中心に半径50の塗りつぶし円を描いてみる。
SET WINDOW 0,500,0,500
DRAW disk WITH SCALE(50)*SHIFT(250,250)
END
◎線の太さを変える
SET LINE WIDTH 数値
*線の太さを標準の太さに対する倍数で指定する。
*線の太さのサンプル。下から標準、2倍、5倍、10倍の太さ。
SET WINDOW 0,500,0,500
PLOT LINES:50 ,250 ;450,250
SET LINE WIDTH 2
PLOT LINES:50 ,300 ;450,300
SET LINE WIDTH 5
PLOT LINES:50 ,350 ;450,350
SET LINE WIDTH 10
PLOT LINES:50 ,400 ;450,400
END
◎線の色を変える
SET LINE COLOR 数値
実行開始時のline colorは1。
本BASICでは,色指標は0から255までが利用でき,あらかじめ次のように割り当てられている。
0白, 1黒, 2青, 3緑, 4赤, 5水色, 6黄色, 7赤紫,8 灰色,9 濃い青,10 濃い緑,
11 青緑, 12 えび茶,13 オリーブ色,14 濃い紫,15 銀色,・・・
*色指定のサンプル。下から色指標1、2、3、4を指定。
SET WINDOW 0,500,0,500
SET LINE COLOR 1
PLOT LINES:50 ,250 ;450,250
SET LINE COLOR 2
PLOT LINES:50 ,300 ;450,300
SET LINE COLOR 3
PLOT LINES:50 ,350 ;450,350
SET LINE COLOR 4
PLOT LINES:50 ,400 ;450,400
END
◎色指標を調べるプログラム
*数値を入れると色が出ます。
10 SET WINDOW 0,500,0,500
INPUT PROMPT "色の数値は?":c
SET LINE COLOR c
SET LINE WIDTH 10
PLOT LINES:50 ,250 ;450,250
goto 10
END
*このプログラムを止める時は「中止」ボタンを押す。
◎全ての色を見るプログラム
10 SET WINDOW 0,500,0,1300
for c=0 to 255
SET LINE COLOR c
SET LINE WIDTH 5
PLOT LINES:50 ,10+c*5 ;450,10+c*5
next c
END
◎これらを組み合わせる
*塗りつぶしたい図形は PLOT LINES:座標 で描く。
*塗りつぶし図形の色はSET AREA COLOR 数値 で指定する。
*プログラムで指定した順に図形は上書きされることに注意。
SET WINDOW 0,500,0,500
SET LINE COLOR 3
SET LINE WIDTH 3
PLOT LINES:20 ,250 ;470,250
SET LINE COLOR 5
SET LINE WIDTH 5
PLOT LINES:250,450;50 ,50 ;450,50; 250,450
SET LINE COLOR 7
SET LINE WIDTH 7
PLOT LINES:50,350;50,150 ;450,150; 450,350;50,350
SET LINE COLOR 9
SET LINE WIDTH 9
DRAW circle WITH SCALE(70)*SHIFT(150,150)
SET AREA COLOR 11
DRAW disk WITH SCALE(50)*SHIFT(300,350)
END
◎背景の色を変える
*背景をウィンドウと同じ大きさの四角形で塗りつぶす。
PLOT AREA:0,0;500,0;500,500;0,500;0,0
*塗りつぶし図形の色はSET AREA COLOR 数値 で指定する。
◎文字を描く
PLOT TEXT ,AT x,y : 文字列式
x,y は座標。点(x,y)を基点として文字列を描く。
文字列式とは、""で文字を囲ったもの。
*サンプル
10 SET WINDOW 0,500,0,500
PLOT TEXT ,AT 250,250 : "文字列"
END
◎文字の色
SET TEXT COLOR 数値式
数値は色指標のこと。
*サンプル
10 SET WINDOW 0,500,0,500
SET TEXT COLOR 4
PLOT TEXT ,AT 250,250 : "文字列"
END
◎文字の角度
OPTION ANGLE DEGREES 角度を〜°で表現する。
SET TEXT ANGLE 数値式
数値は〜°で指定する。
*サンプル
10 SET WINDOW 0,500,0,500
OPTION ANGLE DEGREES
SET TEXT COLOR 4
SET TEXT ANGLE 90
PLOT TEXT ,AT 250,250 : "文字列"
END
◎フォントの指定
SET TEXT FONT FontName$ ,size
文字列を描くときに用いるフォントとそのサイズ(ポイント数)を指定する。
FontName$が空文字列,あるいは存在しないフォント名であると,文字の大きさのみを変更する。
*サンプル
10 SET WINDOW 0,500,0,500
SET TEXT COLOR 4
SET TEXT FONT "MS 明朝",40
PLOT TEXT ,AT 150,150 : "文字列"
SET TEXT COLOR 3
SET TEXT FONT "MS ゴシック",40
PLOT TEXT ,AT 250,250 : "文字列"
END
◎文字の高さ
SET TEXT HEIGHT 数値式
文字の高さを指定する。高さはドット数。縦横ともサイズが変わる。
*サンプル
10 SET WINDOW 0,500,0,500
SET TEXT COLOR 4
SET TEXT HEIGHT 100
PLOT TEXT ,AT 50,150 : "文字列"
END
◎文字のコマンド・組み合わせの例
*マック用サンプルは平尾塾の受講生連絡ボードを参照。
↓
https://hiraosemi.simdif.com/
10 SET WINDOW 0,500,0,500
OPTION ANGLE DEGREES
SET TEXT COLOR 5
SET TEXT ANGLE 70
SET TEXT FONT "MS 明朝",40
PLOT TEXT ,AT 50,200 : "川"
PLOT TEXT ,AT 150,150 : "川"
PLOT TEXT ,AT 250,100 : "川"
PLOT TEXT ,AT 350,80 : "川"
PLOT TEXT ,AT 450,50 : "川"
SET TEXT COLOR 2
SET TEXT ANGLE 0
SET TEXT FONT "MS 明朝",20
PLOT TEXT ,AT 50,350 : "雨"
PLOT TEXT ,AT 80,250 : "雨"
PLOT TEXT ,AT 250,450 : "雨"
PLOT TEXT ,AT 450,150 : "雨"
SET TEXT COLOR 255
SET TEXT ANGLE 300
SET TEXT FONT "MS 明朝",150
PLOT TEXT ,AT 200,350 : "風"
END
◎画面にマス目を描く
DRAW GRID(p,q)
x軸方向 間隔p,y軸方向 間隔qの格子を描く。
*サンプル
SET WINDOW 0,500,0,500
PLOT LINES:250,450;50 ,250 ;450,250; 250,450
DRAW GRID(10,10)
END
◎RGBで色を指定する
SET COLOR MIX(色指標) 数値式,数値式,数値式
色指標に対応する色を変える。色指標は数値式で与える。
3つ並んだ数値式は,赤,緑,青の順に強度を0〜1の数値で指定する。
*サンプル
*色指標 4 を紫に変える。
10 SET WINDOW 0,500,0,500
SET COLOR MIX(4)0.5,0.1,1
SET TEXT COLOR 4
SET TEXT HEIGHT 100
PLOT TEXT ,AT 50,150 : "文字色"
END
◎境界を波型にする
*行番号10と20の間でプログラムを繰り返す。これをFOR〜NEXT構文と呼ぶ。
*このサンプルではdが0から360になるまで、360回処理を繰り返す。
何も指定しなければdは1ずつ増える。
*太い線でサインカーブを4周期描いている。
*360回が終わると次の行に進む。
SET WINDOW 0 , 360 , 0 , 360
OPTION ANGLE DEGREES
SET AREA COLOR 5
plot AREA:0,0;360,0;360,360;0,360
SET COLOR 4
DRAW disk WITH SCALE(50)*SHIFT(180,180)
10 FOR d=0 TO 360
SET LINE COLOR 2
SET LINE WIDTH 40
LET y1=SIN(d*4)*10
LET y12=SIN(d*4+1)*10
PLOT LINES: d, 180+y1;d+1,180+y12
SET AREA COLOR 2
plot AREA:0,0;360,0;360,180;0,180
20 next d
END
◎グラデーションその1
*行番号10と20の間でプログラムを繰り返す。これをFOR〜NEXT構文と呼ぶ。
*このサンプルではdが250から0になるまで、250回処理を繰り返す。
step -1の指定でdは1ずつ減る。
*250回が終わると次の行に進む。
*4の色がRGBで0,0,1(青)から0,0,0(黒)まで変化する。
*250本のライン(太さ3)を上から下端まで塗り重ねている。
SET WINDOW 0 , 500 , 0 , 500
SET AREA COLOR 5
plot AREA:0,0;500,0;500,500;0,500
10 FOR d=250 TO 0 STEP -1
SET COLOR MIX(4)0,0,d/250
SET LINE COLOR 4
SET LINE WIDTH 3
PLOT LINES: 0,d;500,d
20 next d
END
◎グラデーションその2
*行番号10と40の間でプログラムを繰り返す。これをFOR〜NEXT構文と呼ぶ。
*このサンプルではdが500から0になるまで、500回処理を繰り返す。
step -1の指定でdは1ずつ減る。
*500回が終わると次の行に進む。
*4の色がRGBで1,1,1(白)から0,0,1(青)まで変化する。
*500本のライン(太さ5)を上端から下端まで塗り重ねている。
SET WINDOW 0 , 500 , 0 , 500
10 FOR d=500 TO 0 STEP -1
SET COLOR MIX(4)d/500,d/500,1
SET LINE COLOR 4
SET LINE WIDTH 5
PLOT LINES: 0,d;500,d
20 next d
END
◎色の塗り方
SET AREA STYLE 文字列式
PLOT AREA文の塗りつぶし方を指定する。
文字列式の値は,"HOLLOW", "SOLID", "HATCH" のいずれか。
("SOLID"は通常の塗りつぶし。"HOLLOW"は内部を塗らない。つまり線画と同じ。)
この命令を特に使うのは次のハッチの場合。
SET AREA STYLE "HATCH"
線で塗りつぶす。(ハッチング)
◎ハッチングの種類
SET AREA STYLE INDEX 数値
area styleに"HATCH"が指定されたときのハッチの描き方を指定する。
1: 横線 2:縦線 3:斜線(135°) 4:斜線(45°) 5:縦横 6:斜めクロス
*サンプル
*本来、塗りつぶしは不透明だが、背景を黒にすると、視覚効果で混色を表現できる。
SET WINDOW 0,500,0,500
SET area COLOR 1
PLOT AREA:0,0;500,0;500,500;0,500;0,0
SET AREA STYLE "HATCH"
SET LINE COLOR 0
SET LINE WIDTH 20
PLOT LINES:20 ,250 ;470,250
SET AREA STYLE INDEX 4
SET area COLOR 5
PLOT area:250,450;50 ,50 ;450,50; 250,450
SET AREA STYLE INDEX 3
SET AREA COLOR 7
PLOT area:50,350;50,150 ;450,150; 450,350;50,350
SET AREA STYLE INDEX 5
SET area COLOR 2
DRAW disk WITH SCALE(70)*SHIFT(150,150)
SET AREA STYLE INDEX 6
SET AREA COLOR 27
DRAW disk WITH SCALE(50)*SHIFT(300,350)
SET TEXT COLOR 255
SET TEXT FONT "MS 明朝",50
PLOT TEXT ,AT 50,400 : "静"
PLOT TEXT ,AT 380,400 : "動"
END
*サンプル(RGB)
*青・緑・赤の混色
SET WINDOW 0,500,0,500
SET area COLOR 1
PLOT AREA:0,0;500,0;500,500;0,500;0,0
SET AREA STYLE "HATCH"
SET AREA STYLE INDEX 3
SET area COLOR 4
DRAW disk WITH SCALE(100)*SHIFT(300,200)
SET AREA STYLE INDEX 4
SET area COLOR 3
DRAW disk WITH SCALE(100)*SHIFT(200,200)
SET AREA STYLE INDEX 2
SET AREA COLOR 2
DRAW disk WITH SCALE(100)*SHIFT(250,300)
END
◎図形を動かす
*図形を動かすには、座標に数を加減することで描画位置を変える。
*行番号10と40の間でプログラムを繰り返す。これをFOR〜NEXT構文と呼ぶ。
*このサンプルではnが1から50になるまで、50回処理を繰り返す。
何も指定しなければnは1ずつ増える。
*50回が終わると50行のgoto命令で10行に戻る。
*nは二つの円を描く座標を増減させている。
*アニメーションに見えるように、20行に画面を消す clear命令が入っている。
*30行の WAIT DELAY 0.4 は「0.4秒プログラムを止める」という命令である。
これがないと画面がチラチラしてしまう。
*このプログラムを止めるには、一時停止ボタンを押すと開くウィンドウの「中止」
ボタンを押す。
SET WINDOW 0,500,0,500
10 FOR n=1 TO 50
20 clear
SET LINE COLOR 3
SET LINE WIDTH 3
PLOT LINES:20 ,250 ;470,250
SET LINE COLOR 5
SET LINE WIDTH 5
PLOT LINES:250,450;50 ,50 ;450,50; 250,450
SET LINE COLOR 7
SET LINE WIDTH 7
PLOT LINES:50,350;50,150 ;450,150; 450,350;50,350
SET LINE COLOR 9
SET LINE WIDTH 9
DRAW circle WITH SCALE(70)*SHIFT(150+n,150+n)
SET AREA COLOR 11
DRAW disk WITH SCALE(50)*SHIFT(300-n,350-n)
30 WAIT DELAY 0.4
40 NEXT n
50 GOTO 10
END
◎波を動かす
*前に描いた波型の境界を運動させる。
SET WINDOW 0 , 360 , 0 , 360
OPTION ANGLE DEGREES
10 FOR a=360 TO 0 STEP -30
SET AREA COLOR 5
plot AREA:0,0;360,0;360,360;0,360
SET COLOR 4
DRAW disk WITH SCALE(50)*SHIFT(180,180)
FOR d=0 TO 720
SET LINE COLOR 2
SET LINE WIDTH 40
LET y1=SIN(d*4+a)*10
LET y12=SIN(d*4+a+1)*10
PLOT LINES: d, 180+y1;d+1,180+y12
SET AREA COLOR 2
plot AREA:0,0;360,0;360,180;0,180
next d
WAIT DELAY 0.006
clear
NEXT a
GOTO 10
END
◎衛星軌道のシミュレーション
*三角関数を使って斜めの楕円軌道を表現する。
10 SET WINDOW -3,3,-3,3
20 OPTION ANGLE DEGREES
30 FOR t=0 TO 360 STEP 8
40 clear
50 LET x=SIN (t)
60 LET y=SIN(t)/3+COS (t)/3
80 SET COLOR 1
DRAW disk WITH SCALE(0.1)*SHIFT(x,y)
85 DRAW circle WITH SCALE(0.5)*SHIFT(0,0)
90 SET COLOR 0
100 IF y<0 THEN DRAW disk WITH SCALE(0.49)*SHIFT(0,0)
110 WAIT DELAY 1
120 NEXT t
130 GOTO 10
END
◎らせんを描く
*上下左右2000ドットの画面に直径8ドットの円盤を移動させて螺旋を描いている。
10 SET WINDOW -1000,1000,1000,-1000
30 OPTION ANGLE DEGREES
40 FOR t=1 TO 1800 STEP 10/(t*1200+10)
50 LET x=SIN (t)*t/2
60 LET y=COS (t)*t/2
80 DRAW disk WITH SCALE(8)*SHIFT(x,y)
90 WAIT DELAY 0.01
110 NEXT t
500 END
【背景画像の読み込み】
*まず背景画像を用意する。縦横比に注意。正方形ならプログラムと合う。
*正方形でない画像の場合はスクリーンの比率を変えるか、スクリーン上で短辺が
圧縮されることを考慮してプログラムを書く。
*次の二枚の画像をダウンロードする。(自作プログラムと同じフォルダに入れる。)
◎読み込んだ画像の上に文字を書く
*最初の行の GLOAD "画像ファイル名" が読み込みの命令である。
*画像ファイル名を間違えないように。
*縦横比が1:1でないことに注意。
GLOAD "spiral.jpg"
SET WINDOW 0,500,0,500
SET TEXT COLOR 255
SET TEXT FONT "クレー",50
PLOT TEXT ,AT 50,300 : "静"
PLOT TEXT ,AT 410,300 : "動"
END
◎読み込んだ画像の上に文字と図形を書く
*画像ファイル名を間違えないように。
*プログラムで作った背景画像を張り込むと、プログラム実行速度が速くなる。
*フォントによっては、円の中に文字が入らないことがある。
GLOAD "blue.jpg"
SET WINDOW 0,500,0,500
SET line COLOR 3
SET LINE width 10
PLOT LINES:250,360;150 ,200 ;350,200; 250,360
PLOT LINES:150,300;250 ,140 ;350,300; 150,300
SET TEXT COLOR 255
SET LINE COLOR 4
SET LINE width 5
SET TEXT COLOR 255
SET TEXT FONT "クレー",50
DRAW circle WITH SCALE(50)*SHIFT(75,350)
PLOT TEXT ,AT 50,300 : "静"
DRAW circle WITH SCALE(50)*SHIFT(425,350)
PLOT TEXT ,AT 400,300 : "動"
DRAW circle WITH SCALE(50)*SHIFT(75,150)
PLOT TEXT ,AT 50,100 : "寂"
DRAW circle WITH SCALE(50)*SHIFT(425,150)
PLOT TEXT ,AT 400,100 : "滅"
DRAW circle WITH SCALE(50)*SHIFT(250,425)
PLOT TEXT ,AT 225,375 : "空"
DRAW circle WITH SCALE(50)*SHIFT(250,75)
PLOT TEXT ,AT 225,25 : "漠"
END
◎外部絵定義を使う
*プログラムの END の後ろに図形のプログラムを書く。
*プログラムの中で図形を簡単に呼び出すことができる。
* 最初に DECLARE EXTERNAL PICTURE 図形プログラムの名前 を宣言する。
ここでは star と名づける。
*END の後、100〜150行が「外部絵定義」である。
* EXTERNAL PICTURE star と END PICTURE の間に図形プログラムを書く。
*図形を呼び出したい時は DRAW star WITH ROTATE(k)*SCALE(1)*SHIFT(250,250)
のように命令する。その意味は次の通り。
* DRAW @star WITH AROTATE(k)*BSCALE(1)*CSHIFT(250,250)
@定義した外部絵の名前。ここでは star
A図形は自由に回転させることができる。角度をkに入れる。
B拡大・縮小ができる。1は1倍(等倍)のこと。
C描く図形の中心となる座標。
*外部絵の図形を狙い通りの場所に表示させるには、図形の中心座標を(0,0)に
しなければならない。スクリーンの左下隅が(0,0)である。
DECLARE EXTERNAL PICTURE star
OPTION ANGLE DEGREES
FOR k=0 TO 360 STEP 10
CLEAR
GLOAD "blue.jpg"
SET WINDOW 0,500,0,500
DRAW star WITH ROTATE(k)*SCALE(1)*SHIFT(250,250)
SET TEXT COLOR 255
SET LINE COLOR 4
SET LINE width 5
SET TEXT COLOR 255
SET TEXT FONT "クレー",50
DRAW circle WITH SCALE(50)*SHIFT(75,350)
PLOT TEXT ,AT 50,300 : "静"
DRAW circle WITH SCALE(50)*SHIFT(425,350)
PLOT TEXT ,AT 400,300 : "動"
DRAW circle WITH SCALE(50)*SHIFT(75,150)
PLOT TEXT ,AT 50,100 : "寂"
DRAW circle WITH SCALE(50)*SHIFT(425,150)
PLOT TEXT ,AT 400,100 : "滅"
DRAW circle WITH SCALE(50)*SHIFT(250,425)
PLOT TEXT ,AT 225,375 : "空"
DRAW circle WITH SCALE(50)*SHIFT(250,75)
PLOT TEXT ,AT 225,25 : "漠"
WAIT DELAY 1
NEXT k
END
100 EXTERNAL PICTURE star
SET line COLOR 3
SET LINE width 10
PLOT LINES:0,105;-100 ,-55 ;100,-55; 0,105
PLOT LINES:-100,55;0 ,-105 ;100,55; -100,55
150 END PICTURE
◎ランダム関数を使う
*サイコロのプログラム
*10行はランダム関数をリフレッシュする命令
*20行のR N Dは0以上1未満の数を発生させる関数。6をかけると0以上6未満の
数になる(0から5.999999…)。
*I N T(小数)は、小数の整数部を取り出す関数。5.999999…なら「5」になる。
20行ではサイコロにするために1を足している。これでnは1から6のどれかになる。
*30行のSTR$(n)は「数値のnを文字のnにする」関数。フォントや色や大きさを変える
ためには、数字を文字として扱わなければならない。ここではn$が文字の変数。
let n$=STR$(n)で「数値のnが文字のnに変換される。」
SET WINDOW 0,500,0,500
10 RANDOMIZE
20 LET n=1+INT(6*RND)
30 let n$=STR$(n)
SET TEXT COLOR 4
SET TEXT FONT "Times New Roman",80
PLOT TEXT ,AT 250,200 :n$
END
◎ランダム関数と外部絵定義を組み合わせる。
*定義した絵(ボール)をランダムに配置するプログラム。
*20行以下で6個のボールのx座標をランダムに決める。
*30行以下で6個のボールのy座標をランダムに決める。
*40行で背景を読み込む。
*50行以下で外部絵定義したボールを様々な大きさで表示。
*100行以下が外部絵定義。グラデーションの応用。
DECLARE EXTERNAL PICTURE ball
OPTION ANGLE DEGREES
10 RANDOMIZE
20 LET m1=1+INT(550*RND)
LET m2=1+INT(500*RND)
LET m3=1+INT(450*RND)
LET m4=1+INT(350*RND)
LET m5=1+INT(250*RND)
LET m6=1+INT(100*RND)
30 LET n1=1+INT(150*RND)
LET n2=1+INT(350*RND)
LET n3=1+INT(450*RND)
LET n4=1+INT(650*RND)
LET n5=1+INT(500*RND)
LET n6=1+INT(550*RND)
40 GLOAD "blue.bmp"
SET WINDOW 0,500,0,500
50 DRAW ball WITH ROTATE(0)*SCALE(1)*SHIFT(m1,n1)
DRAW ball WITH ROTATE(0)*SCALE(0.5)*SHIFT(m2,n2)
DRAW ball WITH ROTATE(0)*SCALE(1.5)*SHIFT(m3,n3)
DRAW ball WITH ROTATE(0)*SCALE(0.8)*SHIFT(m4,n4)
DRAW ball WITH ROTATE(0)*SCALE(1)*SHIFT(m5,n5)
DRAW ball WITH ROTATE(0)*SCALE(1.2)*SHIFT(m6,n6)
END
100 EXTERNAL PICTURE ball
FOR d=1 TO 30 STEP 1
SET COLOR MIX(4)1,d/30,d/30
SET LINE COLOR 4
SET LINE WIDTH 10
DRAW circle WITH SCALE(30-d)*SHIFT(d/2,d/2)
NEXT d
150 END PICTURE
◎多数のボールをランダムに配置する
*10行目の100を変えれば任意の個数のボールを配置できる。
GLOAD "blue.bmp"
SET WINDOW 0,500,0,500
DECLARE EXTERNAL PICTURE ball
OPTION ANGLE DEGREES
10 FOR t=1 TO 100
RANDOMIZE
LET m1=1+INT(500*RND)
LET n1=1+INT(500*RND)
LET s1=0.1+(0.8*RND)
DRAW ball WITH ROTATE(0)*SCALE(s1)*SHIFT(m1,n1)
NEXT t
END
100 EXTERNAL PICTURE ball
FOR d=1 TO 30 STEP 1
SET COLOR MIX(4)1,d/30,d/30
SET LINE COLOR 4
SET LINE WIDTH 10
DRAW circle WITH SCALE(30-d)*SHIFT(d/2,d/2)
NEXT d
150 END PICTURE
◎キャラクターの一覧
*chr$(128010)からchr$(129000)までのキャラクターを描く。
*下から上に10個ずつ10行で示す。左下の最初の記号がchr$(129010)番である。
SET WINDOW 0,500,0,500
SET TEXT FONT "MS 明朝",40
FOR m=1 TO 10
FOR n=1 TO 10
PLOT TEXT ,AT 10+40*n,10+40*m :chr$(128000+10*m+n)
NEXT n
next m
END
◎文字以外のキャラクターを外部絵定義で利用する。
*140行で魚のキャラクターを指定する。
DECLARE EXTERNAL PICTURE kingyo
OPTION ANGLE DEGREES
10 RANDOMIZE
LET m1=1+INT(550*RND)
LET m2=1+INT(600*RND)
LET m3=1+INT(650*RND)
LET m4=1+INT(750*RND)
LET m5=1+INT(850*RND)
LET m6=1+INT(500*RND)
RANDOmize
LET n1=1+INT(150*RND)
LET n2=1+INT(350*RND)
LET n3=1+INT(450*RND)
LET n4=1+INT(250*RND)
LET n5=1+INT(500*RND)
LET n6=1+INT(50*RND)
FOR k=0 TO 500 STEP 10
CLEAR
GLOAD "blue.bmp"
SET WINDOW 0,500,0,500
DRAW kingyo WITH ROTATE(0)*SCALE(1)*SHIFT(m1-k,n1)
IF (m1-k)<-50 THEN LET m1=INT(550+k)
DRAW kingyo WITH ROTATE(0)*SCALE(0.5)*SHIFT(m2-k,n2)
IF (m2-k)<-50 then LET m2=INT(550+k)
DRAW kingyo WITH ROTATE(0)*SCALE(1.5)*SHIFT(m3-k,n3)
IF (m3-k)<-50 then LET m3=INT(550+k)
DRAW kingyo WITH ROTATE(0)*SCALE(0.8)*SHIFT(m4-k,n4)
IF (m4-k)<-50 then LET m4=INT(550+k)
DRAW kingyo WITH ROTATE(0)*SCALE(1)*SHIFT(m5-k,n5)
IF (m5-k)<-50 then LET m5=INT(550+k)
DRAW kingyo WITH ROTATE(0)*SCALE(1.2)*SHIFT(m6-k,n6)
IF (m6-k)<-50 then LET m6=INT(550+k)
WAIT DELAY 1
NEXT k
goto 10
END
100 EXTERNAL PICTURE kingyo
SET TEXT COLOR 4
SET TEXT FONT "クレー",50
140 PLOT TEXT ,AT 0,0 : "??"
150 END PICTURE