グラフィック


今日は、山本です。
今回は、BASICのグラフィック関係のステートメントの簡単な使い方を御 紹介致します。
さて、BASICで使用できる壁画命令は以下の通りです。
・line命令
・circle命令
・pset命令
・paint命令
・draw命令
・put@命令、get@命令
今回は、そのうちの頻繁に使用するline、circle、pset命令について解説しようと思います。
draw命令については私が理解していないので解説できません(^^;;。put@、get@については後日解説することにします。
まず、グラフィック画面に対して各種設定を行う基本的なステートメントについて解説しましょう。(以下の操作はダイレクトモード。)
まず、以下のステートメントを入力してみましょう。
screen 3,0,0,1[ret]
color ,,,,2[ret]
入力しても画面上には何の変化も現れませんので、一見何も起こってないかのように見えますが、次のような設定がグラフィック画面に対して行われています。
まず、screen 3,0,0,1ですが、これは、「高解像度カラーモード、画面表示の許可、書き込み画面ページ0、表示画面ページ0」に設定したことになります。
これだけではこのscreen命令でどのような設定ができるかわかりませんね。
では、ここで、このscreen命令にどのような機能があるのかを解説しましょう。
まず、パラメタがどのようになっているかを説明します。
screen [解像度/カラー・白黒モード切り替え],[画面表示の許可/禁止],[壁画ページ],[表示ページ]
それでは、各パラメタについて解説していくことにしましょう。
i)モード切替スイッチ
  0…カラーモード
  1…白黒モード
  2…高解像度白黒モード
  3…高解像度カラーモード
このスイッチでは、画面の解像度および白黒/カラーの指定を行います。
なお、ノーマルモードは640*200ドット、高解像度モードは640*400ドットです。
ii)画面表示の許可/禁止
  0,1…許可
  2,3…禁止
このスイッチでは、グラフィックを画面に表示させるかさせないかを設定します。
グラフィックは消したくないが、一時的に表示させたくない場合などに使用します。
iii)壁画ページ
  0…ページ1
  1…ページ2
このスイッチでは、グラフィックを書きこむページを設定します。
iv)表示ページ
   i)8色中8色モードおよび4096色中8色モード
   1…ページ1
   17…ページ2
  ii)4096色中16色モード
    1…ページ1
   33…ページ2
このスイッチでは、表示ページを設定します。
注)上記は4096色中8/16色、高精度壁画モードの場合について記載しています。白黒モード等の場合は設定が異なります。
以上が大まかな説明です。通常は、screen 3,0,0,1で使用することが多いです。
次に、グラフィック画面についてのcolor命令の設定方法をご紹介しましょう。
color ,,,,[使用色モード]
使用色モードには、0,1,2の3種類の数値が使用できます。
0は8色中8色モード、1は4096色中8色モード、2は4096色中16色モードに設定することができます。
それでは、早速壁画してみることにしましょう。
まず、線を引いてみましょう。
line (100,100)-(150,100),2
実行すると、画面の左上のほうに赤い線が表示されましたね。
では、次に以下の命令を実行してみましょう。
line (100,100)-(150,150),1
今度はさっきと同じ場所に青い斜線が表示されましたね。
このように、line命令は直線も斜線も表示させることができます。
つぎに、以下の命令を実行してみましょう。
line (100,300)-(150,350),2,b
今度は、左下に赤い四角(正方形)が表示されましたね。
ここで、この赤い正方形の中を水色で塗りつぶしてみましょう。
paint(120,320),5,2
赤い枠の中が水色で塗りつぶされましたね。
これは、「ドット(120,320)の周りにある赤い枠を水色で塗りつぶせ」という命令です。
使い方を記すると、
paint([X],[Y]),[領域色],[境界色]
x,yにはそれぞれ数値を入力します。
領域色は、塗りつぶす色を指定します。
境界色は、塗りつぶす部分と塗りつぶさない部分の境界の色を指定します。
いずれも数値で指定します。
次に、circle文の紹介をします。
次の文を実行してみましょう。
circle(300,200),50,4
画面の中央付近に緑の円が表示されましたね。
このように、circle文には、円を描くという機能が割り当てられています。
circle([X],[Y]),[円の半径],[壁画色]
ここで、領域内を塗りつぶす命令にpaint命令があることをご紹介しましたが、上で紹介した2つの命令は、あるパラメタを追加することで枠内を塗りつぶすことができます。
以下に例文を示します。
・line文の場合

	line(100,100)-(150,150),1,bf,5

・circle文の場合

	circle(100,100),50,5,,,,f

上の命令を実行すると、line文のほうは、青い正方形の中を水色で塗りつぶしたものが、circle文のほうは、青い円が表示されます。
line文の場合、bをbfに変え、その後に塗りつぶしカラーコードを入力します。線を描くコードと塗りつぶすコードが同一の場合、bf以降の設定は必要ありません。
さて、最後に、pset命令についてご紹介します。
前回(第1回)に、すでに紹介しているので例文のみ紹介して終わらさせていただきます。
pset([X],[Y]),カラーコード
この命令はグラフィック画面上に点(ドット)を打ちます。

それでは、今回はこの辺で終わらせていただきます。
今回も最後までお読みいただきまして、ありがとうございました。
  • N88−日本語BASIC(86)ホーム
    ご質問、ご意見、お問い合わせは…
    山本 裕之
    E-mail:s97a2075@ws.ipc.fit.ac.jp