他の描画命令の干渉を受けない描線命令

 Full BASICでは,PLOT LINESの描点(ビーム)は,PLOT POINTSやPLOT TEXTなど,他の描画命令を実行するとオフとなるように規定されています。この動作は,たいていの場合,不便です。
 次のプログラムの1000行以降に示すようなモジュールを用意すると,他の描画命令の干渉を受けないで折れ線が描けます。
 このモジュールを利用するプログラム単位には,100行のようなDECLARE EXTERNAL宣言を書き,
PLOT LINES: x, y; の代わりに CALL PlotTo(x,y)を,
座標を指定しないPLOT LINESの代わりに CALL BeamOff を用います。
SET LINE COLOR,SET LINE STYLE などはそのまま使えます。

100 DECLARE EXTERNAL SUB LINES.PlotTo, LINES.BeamOff 
110 DATA 1, 0.6
120 DATA 2, 1.1
130 DATA 3, 3.2
140 DATA 4, 2.1
150 SET WINDOW 0,5,0,5
160 SET LINE STYLE 3
170 DO 
180    READ IF MISSING THEN EXIT DO:x,y
190    CALL PlotTo(x,y)
200    PLOT POINTS: x,y
210 LOOP
220 END

1000 MODULE LINES
1010 PUBLIC SUB PlotTo, BeamOff
1020 SHARE NUMERIC x0,y0,beam
1030 LET beam=0 
1040 EXTERNAL SUB PlotTo(x,y)
1050    IF beam<>0 THEN PLOT LINES:x0,y0; x,y
1060    LET x0=x
1070    LET y0=y
1080    LET beam=1
1090 END SUB
1100 EXTERNAL SUB BeamOff
1110    LET beam=0
1120 END SUB
1130 END MODULE


<Note.>
Ver. 7.1.4以降では,独自拡張命令の

SET BEAM MODE "IMMORTAL"

を実行すると, PLOT POINTS,PLOT AREA,PLOT TEXT,GET POINT,DRAW文 を実行したとき,描点の状態を変更しないようになります。


戻る inserted by FC2 system