AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
グラフィック描画BASIC(15)
やはりBASICで一番楽しいプログラミングは、グラフィック描画で遊ぶ事でしょう。最初は乱数を使って無茶苦茶に直線等を作図したり、するだけでも楽しかったものでした。
画面設定や画面消去については「PC-9801画面構成とお約束」である程度は既に記述していますので、実際の作図命令について記述していきます。各座標値は、ノーマルモード640×400時、以下のようになります。
(0,0)           (639,0)
 
 
 
 
 
 
 
 
(0,399)         (639,399)

 
◆CLS
グラフィック画面のクリアは
CLS 3
で行います。
 
◆LINE
直線を作図します。
LINE (X1,Y1)-(X2,Y2)始点(X1,Y1)から終点(X2,Y2)へ直線を作図します。色はフォアグラウンドカラーです
LINE (X1,Y1)-(X2,Y2),C色指定をして直線を作図します
LINE (X1,Y1)-(X2,Y2),7,,&HAAAAラインスタイル(&HAAAA)を指定して作図します
LINE -(X2,Y2)先程作図した最終点から(X2,Y2)まで直線を作図します
LINE (X1,Y1)-STEP(DX,DY)(X1,Y1)〜(X1+DX,Y1+DY)へ直線を作図します
LINE -STEP(DX,DY)先程作図した最終点から(+DX,+DY)の位置まで直線を作図します
また、長方形を作図する事も出来ます。
LINE (X1,Y1)-(X2,Y2),5,B(X1,Y1)〜(X2,Y2)を対角線とする長方形を作図します。
LINE (X1,Y1)-(X2,Y2),5,BF長方形の内部を塗り潰します
LINE (X1,Y1)-(X2,Y2),7,B,&HAAAAラインスタイル(&HAAAA)を指定して長方形を作図します
LINE (X1,Y1)-(X2,Y2),5,BF,7輪郭線は色5で、塗り潰しは色7で、長方形を作図します
LINE (X1,Y1)-(X2,Y2),5,BF,T$輪郭線は色5で、塗り潰しはT$で与えるタイルストリングで、長方形を作図します
ラインスタイルは&H0000〜&HFFFFの範囲で指定します。
----- -- -- ----1111101101101111FB6F
タイルストリングは文字列で与えるパターンで、横8ドット×縦Nドットが可能です。8色モードの場合は縦1ドットにつき、青プレーン→赤プレーン→緑プレーンの順に指定します。16色モードの場合は更に濃淡プレーンの分が必要です。
例えば、8色・8ドット×2ドットの場合、

青:10101010
赤:10001000
緑:00000000
AA
88
00
77
22
00
青:01110111
赤:00100010
緑:00000000
でタイルストリングは、T$=CHR$(&HAA)+CHR$(&H88)+CHR$(&H00)+CHR$(&H77)+CHR$(&H22)+CHR$(&H00)という具合で指定します。込み入った図形等になるとメモリオーバーのエラーを発生する場合があります。
 
◆PSET
点を作図します。
PSET (X,Y)(X,Y)に点を作図します。色はフォアグラウンドカラーです
PSET (X,Y),C色指定をして点を作図します
PSET STEP(X,Y)作図最終点から+X,+Yの位置に点を作図します
 
◆POINT
作図最終点を変更します。作図は行いません。
POINT (X,Y)作図最終点を(X,Y)にします
POINT STEP(DX,DY)作図最終点を+DX,+DYの分だけずらします
また、作図最終点の座標を取得する場合には以下のようにします。
WX=POINT(0)作図最終点のワールド座標系X座標を取得
WX=POINT(1)作図最終点のワールド座標系Y座標を取得
SX=POINT(2)作図最終点のスクリーン座標系X座標を取得
SX=POINT(3)作図最終点のスクリーン座標系Y座標を取得
(ワールド座標系は、WINDOW命令を利用する場合に使います)
更に、スクリーン座標系の指定したドットの色を取得する事が出来ます。
C=POINT(X,Y)座標(X,Y)の描画色を変数Cに入れます
 
◆PRESET
点を消去します。
PRESET (X,Y)(X,Y)をバックグラウンドカラーで点を作図します
PRESET (X,Y),C色指定をして点を作図します(PSETと同じ)
PRESET STEP(X,Y)作図最終点から+X,+Yの位置に点を作図します
 
◆CIRCLE
円、円弧、楕円、楕円弧を作図します。
CIRCLE (X,Y),R中心点(X,Y)、半径Rで、円を作図します。色はフォアグラウンドカラーです
CIRCLE (X,Y),R,C色指定をして円を作図します
CIRCLE STEP(X,Y),R作図最終点から+X,+Yの位置を中心点として円を作図します
CIRCLE (X,Y),R,5,,,,F円の内部を塗り潰します
CIRCLE (X,Y),R,5,,,,F,7輪郭線を5、塗り潰し色を7で円を作図します
CIRCLE (X,Y),R,5,,,,F,T$円の内部をタイルストリングT$で塗り潰します
CIRCLE (X,Y),R,C,A1,A2開始角度A1、終了角度A2、で円弧を作図します。角度値はラジアン値です
CIRCLE (X,Y),R,C,,,0.5比率0.5の楕円を作図します。比率は(垂直方向の半径)÷(水平方向の半径)で指定します
CIRCLE (X,Y),R,C,A1,A2,0.5開始角度A1、終了角度A2、比率0.5で楕円弧を作図します
 
◆PAINT
指定色で囲まれた領域を塗り潰します。
PAINT (X,Y)通過点(X,Y)を含む、境界線色で囲まれた領域内をフォアグラウンドカラーで塗り潰します
PAINT (X,Y),C通過点(X,Y)を含む、境界線色Cで囲まれた領域内を領域色Cで塗り潰します
PAINT (X,Y),C,D通過点(X,Y)を含む、境界線色Dで囲まれた領域内を領域色Cで塗り潰します
PAINT STEP(X,Y),C,D作図最終点から+X,+Yの位置を通過点とする、境界線色Dで囲まれた領域内を領域色Cで塗り潰します
PAINT (X,Y),T$,D通過点(X,Y)を含む、境界線色Dで囲まれた領域内をタイルストリングT$で塗り潰します

 
 
文字を塗り潰した長方形と組み合わせて表示したい場合、「PC-9801画面構成とお約束」で記述したPX,PYを使って以下のように記述すると、ノーマルモードでもハイレゾモードでも同じように画面描画させる事が出来ます。
あいうえお
10 ' SAVE "ファイル名.BAS"
20 ' プログラムのタイトル等
30 '
40 IF VIEW(2)=639 THEN SCREEN 3,0,0,1:PX=1:PY=1 ELSE SCREEN 0,0,0,1:PX=1.75:PY=1.875
50 WIDTH 80,25:CONSOLE 0,25,0,1,0:COLOR ,,,,2:CLS 3
・・・・・
1000 LOCATE 10,15:PRINT "あいうえお"
1010 LINE(10*8*PX,15*16*PY)-STEP(10*8*PX,16*PY),4,BF
 
半角文字は、ノーマルモード時、横8ドット×縦16ドットで表現されます。全角文字は、横16ドット×縦16ドットになります。これは、横640ドット÷80文字=8で分かる通り。それではハイレゾモードの場合には、横1120ドット÷80文字=14、縦750÷25=30、となります。ですのでノーマルモード時を基準にして、ハイレゾモードの場合には、14/8=1.75、30/16=1.875、の比率を掛ければノーマル・ハイレゾの両用プログラムが簡単に書ける、という訳です。
バッチファイル
BASIC
 1 2 3 4 5
 6 7 8 9 A
 B C D E F
 G H I J
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.