N88-BASICで落書き
2021/6/8(火)
N88-BASICで落書き
(by ULproject for N88-BASIC, NL-BASIC)
NL-BASIC,VL-BASICについての注意点とお知らせ
扇形の塗潰しは、はみ出しや塗残しなどの不具合が
でる可能性があります
その時はPAINTなどで代用して下さい
塗潰しの円や扇を描く過程を見る見ないを、
Alt+'-' , Alt+'^' で切替えることができます
Alt+'1'~'6'(全体の速さ変更)
Alt+'7'~'0'(グラフィックの速さ変更)
など詳しくは付属マニュアルを見てください
(NLBasic01.txt,VLBasic01.txtでも可能です)
graf001.bas 渦巻と色塗り
graf002.bas 円と色塗り
graf003.bas まるを描く
graf004.bas くま
graf005.bas うさぎ
graf006.bas たぬき
N88-BASICについて
グラフィック座標は
(0, 0) … (639, 0)
…
(0,399) … (639,399)
のように左上が原点になっています。
(右下はSCREENモードにより変わります)
色は0:黒 1:青 2:赤 3:紫 4:緑 5:水色 6:黄 7:白
です
CIRCLE(320, 200), 50, 7
で半径50の白い円が画面中央に描かれます。
CIRCLE(x, y), r, c, a1, a2, e, F, b/t$
(x, y) … 円の中心座標
r … 円の半径
c … 円弧の色
a1, a2 … 円弧の開始,終了角(0~2π)(負の時半径描画)
e … 楕円の縦の半径に対する横の半径の割合
半径rの円を縦,横に潰した形になる。
e = 0.5 → 横r , 縦0.5r で横長
e = 2.0 → 横r/2 , 縦r で縦長
F … Fを指定すると円内部をc色で塗潰す
b/t$ … bを指定するとcの代わりにb色で塗潰す
bの代わりにt$を指定するとタイルパターン
で塗潰す
8色モードのタイルパターンの説明
150 B$ = CHR$(0)+CHR$(&H55)+CHR$(0)+CHR$(0)+CHR$(&HAA)+CHR$(0) '--- 黒赤
16進 2進
Blue 00 00000000 1の位(この位が1なら1)
Red 55 01010101 2の位(この位が1なら2)
Green 00 00000000 4の位(この位が1なら4)
02020202 … 合計
Blue 00 00000000 1の位(この位が1なら1)
Red AA 10101010 2の位(この位が1なら2)
Green 00 00000000 4の位(この位が1なら4)
20202020 … 合計
よって、B$は、
黒赤黒赤黒赤...
赤黒赤黒赤黒...
...
というタイルパターンで塗潰します
PAINT命令でも同じです
BASICでは角度は弧度法(ラジアン)を使います
度数法(°)は360で1周ですが、
弧度法(ラジアン)は半径1の円の弧の長さ
(1周2π)で角度を表したものです
関数の定義
BASICでは1つの数式を関数として定義できます
(IFなどの命令文を書くことはできません)
DEF FN関数名(x, y, ...) = ...
です(VL-BASICではFN以外でもエラーになりません)
DEF FNR(X) = X * PI / 180 '--- 度をラジアンへ
を実行しておくと、
FNR(90)は90 * PI / 180という計算が行われます
この関数を使えば度(0~360)で指定できます
PI = ATN(1) * 4 は、円周率の代入です
Tan-1(1) = π/4なので4倍しています
PI = 3.141592653589793 としてもかまいません
CLS nは画面消去です。
n = 1または省略 → テキスト画面の消去
n = 2 → グラフィック画面の消去
n = 3 → 両方の消去
LINE(x1, y1)-(x2, y2), c
座標(x1, y1)から(x2, y2)にc色の線を引く
その他、箱や塗り潰し、破線など、
詳しくはNL-BASICなどのマニュアルを見て下さい。
渦巻の描き方
直角三角形の底辺x、高さy、斜辺r、角θ(x,r間)なら
sinθ=y/r、cosθ=x/rは三角比の定義(決め事)です。
両辺r倍して、
x = rcosθ
y = rsinθ
0≦θ<360(°)で座標(x,y)に点を打てば、
半径rの円が描けます。
rを少しずつ増やしながら何周も円をかけば、
渦巻になり、その後タイルペイントしています
VL-BASICでは256色モードのタイリングがあります
詳しくはマニュアルを見て下さい
同心円をずらす
VIEW(0,200)-(639,399)で画面下半分のみ描画モードにし、
ROLL , -16で右に16dotずらしています
VIEW(X1,Y1)-(X2,Y2)[,C][,B]
描画領域の指定、C色で塗潰、B色の枠で描画領域外を囲む
ROLL [H][,W][,N/Y]
VIEW内を上下H,左右Wドットスクロールする
H>0上,W>0左 空いた領域は、N又は省略は0、Yは消去色
で埋める
NL-BASICと
blg~.zip(graf001.bas~graf006.bas)は
以下のリンクからダウンロードできます
Readme.txtを読んで遊んで下さい