新しく発言する EXIT インデックスへ
仕様確認〜描点のオン、オフ

  仕様確認〜描点のオン、オフ 山中和義 2007/01/05 11:05:54 
  おそらく,バグです。 白石 和夫 2007/01/05 12:08:14 
  JISFullBASICに, 白石 和夫 2007/01/05 13:22:06 
   └修正版を作成します。 白石 和夫 2007/01/05 14:27:22 
    └他の図形出力文を実行すると描点がオフにな... 白石 和夫 2007/01/06 08:20:55 

  仕様確認〜描点のオン、オフ 山中和義 2007/01/05 11:05:54  ツリーへ

仕様確認〜描点のオン、オフ 返事を書く
山中和義 2007/01/05 11:05:54
折れ線を引く場合、多角形(AREA)、文字(TEXT)を挿入するとオフになります。

これは仕様でしょうか?

PLOT LINES: 0,0; !折れ線
PLOT LINES: 0.1,0.1;
PLOT LINES: 0.2,0.2;

PLOT POINTS: 0.8,0.8 !点
!PLOT AREA: 0.5,0.5; 0.6,0.5; 0.6,0.6; 0.5,0.6 !領域
!PLOT TEXT, AT 0.7,0.7: "TEST" !文字

PLOT LINES: 0.3,0.3;
PLOT LINES: 0.4,0.4;

END

  おそらく,バグです。 白石 和夫 2007/01/05 12:08:14  ツリーへ

Re: 仕様確認〜描点のオン、オフ 返事を書く
白石 和夫 2007/01/05 12:08:14
おそらく,バグです。
至急,確認します。

  JISFullBASICに, 白石 和夫 2007/01/05 13:22:06  ツリーへ

Re: 仕様確認〜描点のオン、オフ 返事を書く
白石 和夫 2007/01/05 13:22:06
JIS Full BASIC に,
次の場合,描点はオフとなる。
(a)
(b) 機能語PLOT LINESを持たない図形出力文の実行前
(c)
(d)
となっているので,PLOT POINTSを実行して描点がオフにならないのはバグです。
PLOT AREAやPLOT TEXTを実行して描点がオフになるは,規格通りの動作です。

   └修正版を作成します。 白石 和夫 2007/01/05 14:27:22  ツリーへ

Re: JISFullBASICに, 返事を書く
白石 和夫 2007/01/05 14:27:22
修正版を作成します。
なお,修正版においても,MAT PLOT LINES文は実行前に描点をオフにします。これはJIS非互換(現時点における仕様)です。
将来,修正する可能性があるので,この動作に依存したプログラムを書かないでください。

    └他の図形出力文を実行すると描点がオフにな... 白石 和夫 2007/01/06 08:20:55  ツリーへ

Re: 修正版を作成します。 返事を書く
白石 和夫 2007/01/06 08:20:55
他の図形出力文を実行すると描点がオフになるというJISの規定は不便です。
次のプログラムの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




インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。