↓このページからプログラムをダウンロードする。
◎自分の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