新しく発言する EXIT インデックスへ
複数の座標軸の設定

  複数の座標軸の設定 多田幸生 2006/02/27 11:12:57 
  座標系を再設定するだけです。 白石 和夫 2006/02/27 12:04:11 
  │└早速のお答えありがとうございます。 多田幸生 2006/02/27 12:35:54 
  │ ├左右に分けて書きたいのであれば, 白石 和夫 2006/02/27 13:36:13 
  │ │└第2の方法は納得です。 多田幸生 2006/02/27 14:11:49 
  │ │ └(1)はビットマップの大きさを変えればよい 白石 和夫 2006/02/27 14:17:19 
  │ │  └(1)PhotoImpactなどで 多田幸生 2006/02/27 16:25:53 
  │ │   └(1)は 白石 和夫 2006/02/27 16:35:18 
  │ │    └試してみました。ありがとうございます。 多田幸生 2006/02/28 11:29:19 
  │ │     ├組込みのDrawgridを使わずに, 白石 和夫 2006/02/28 11:33:31 
  │ │     └version5.7.0で,ビットマップ(画面)モード... 白石 和夫 2006/03/04 14:39:28 
  │ │      └(仮称)十進BASICver.5.7.4ダウンロードし、 多田幸生 2006/03/15 18:26:02 
  │ └もし,計算は平行して行いたいのであれば,... 白石 和夫 2006/02/27 14:06:12 
  ウインドウ、ビューポートのサポート 山中和義 2006/02/28 20:26:21 
   └続き 山中和義 2006/02/28 20:37:23 
    └山中様 多田幸生 2006/03/01 15:36:16 

  複数の座標軸の設定 多田幸生 2006/02/27 11:12:57  ツリーへ

複数の座標軸の設定 返事を書く
多田幸生 2006/02/27 11:12:57
一つのプログラムの中で計算した複数の関数のグラフを
異なる座標軸のもとで書きたいのですが
方法を教えてください。

  座標系を再設定するだけです。 白石 和夫 2006/02/27 12:04:11  ツリーへ

Re: 複数の座標軸の設定 返事を書く
白石 和夫 2006/02/27 12:04:11
座標系を再設定するだけです。
100 OPTION ANGLE DEGREES
110 DEF f(x)=x^3-3*x
120 DEF g(x)=SIN(x)
130 SET WINDOW -4,4,-4,4
140 FOR x=-4 TO 4 STEP 0.1
150 PLOT LINES:x,f(x);
160 NEXT x
170 PLOT LINES
180 SET WINDOW -180,180,-4,4
190 FOR x=-180 TO 180
200 PLOT LINES:x,g(x);
210 NEXT x
220 PLOT LINES
230 END

  │└早速のお答えありがとうございます。 多田幸生 2006/02/27 12:35:54  ツリーへ

Re: 座標系を再設定するだけです。 返事を書く
多田幸生 2006/02/27 12:35:54
早速のお答えありがとうございます。
しかし、これは既に試してみましたが
同じ ・・・・.bmp
の絵の中に書かれてしまう
(二つのグラフが交差する絵となる)ので
だめでした。
この掲示板にお尋ねしてみました。
グラフ図1
グラフ図2
と別々のグラフを書きたいのです。

よろしく御願いいたします。

  │ ├左右に分けて書きたいのであれば, 白石 和夫 2006/02/27 13:36:13  ツリーへ

Re: 早速のお答えありがとうございます。 返事を書く
白石 和夫 2006/02/27 13:36:13
左右に分けて書きたいのであれば,
100 OPTION ANGLE DEGREES
110 DEF f(x)=x^3-3*x
120 DEF g(x)=SIN(x)
130 SET WINDOW -4,4+8,-4,4
140 FOR x=-4 TO 4 STEP 0.1
150 PLOT LINES:x,f(x);
160 NEXT x
170 PLOT LINES
180 SET WINDOW -180-360,180,-4,4
190 FOR x=-180 TO 180
200 PLOT LINES:x,g(x);
210 NEXT x
220 PLOT LINES

別の図を得たいのであれば,1枚書いたら保存し,
画面をCLEARして次を描く

100 OPTION ANGLE DEGREES
110 DEF f(x)=x^3-3*x
120 DEF g(x)=SIN(x)
130 SET WINDOW -4,4,-4,4
140 FOR x=-4 TO 4 STEP 0.1
150 PLOT LINES:x,f(x);
160 NEXT x
170 PLOT LINES
175 GSAVE "図1.BMP"
178 CLEAR
180 SET WINDOW -180,180,-4,4
190 FOR x=-180 TO 180
200 PLOT LINES:x,g(x);
210 NEXT x
220 PLOT LINES
225 GSAVE "図2.BMP"
230 END


  │ │└第2の方法は納得です。 多田幸生 2006/02/27 14:11:49  ツリーへ

Re: 左右に分けて書きたいのであれば, 返事を書く
多田幸生 2006/02/27 14:11:49
第2の方法は納得です。
GSAVE "….bmp" と CLEAR がポイントですね。
したかったことがこれでできます。
知らなかったコマンドを勉強しました。ありがとうございます。
ただ、この場合 外へbmpファイルを見に行くというのが
ちょっとだけ手間ですね。

第一の方法はwindowの設定を大きめにしておく方法ですね。
作業中に出来上がりのグラフがすぐ見えていいのですが
しかし、この場合、
(1)絵の幅などが短くなる(圧縮されてしまう)
(2)DRAW AXES(GRID)コマンドなどと組み合わせて使うとき、二つの座標軸および格子が重なって見えてしまう
ことになります。
これも解決したいですね。なんとかなりませんか。
よろしく御願いいたします。

本当に即答していただきありがとうございます。

  │ │ └(1)はビットマップの大きさを変えればよい 白石 和夫 2006/02/27 14:17:19  ツリーへ

Re: 第2の方法は納得です。 返事を書く
白石 和夫 2006/02/27 14:17:19
(1)はビットマップの大きさを変えればよい
(2)は自前のルーチンでGRIDを描けばOk

  │ │  └(1)PhotoImpactなどで 多田幸生 2006/02/27 16:25:53  ツリーへ

Re: (1)はビットマップの大きさを変えればよい 返事を書く
多田幸生 2006/02/27 16:25:53
(1) PhotoImpactなどで
  形式 ==> イメージサイズ
 でbmpのサイズを変更するということでしょうか?
(2) DRAW GRID (AXES) とういコマンドを使わず
  LINE文で格子線をひくということでしょうか?

なお、MAT PLOT はまだよくわかりませんので
後で試してみます。

  │ │   └(1)は 白石 和夫 2006/02/27 16:35:18  ツリーへ

Re: (1)PhotoImpactなどで 返事を書く
白石 和夫 2006/02/27 16:35:18
(1) は
SET BITMAP SIZE
を使うということです。

  │ │    └試してみました。ありがとうございます。 多田幸生 2006/02/28 11:29:19  ツリーへ

Re: (1)は 返事を書く
多田幸生 2006/02/28 11:29:19
試してみました。ありがとうございます。
しかし、まだ(2)の方の座標軸と目盛りが重なってしまうのが
解決できません。
よろしく御教え御願いいたします。
以下は試しのプログラムです

100 SET bitmap SIZE 1000, 500
110 OPTION ANGLE DEGREES
120 DEF f(x)=x^3-3*x
130 DEF g(x)=SIN(x)
140 SET WINDOW -4,4+8,-4,4
150 DRAW axes
160 FOR x=-4 TO 4 STEP 0.1
170 PLOT LINES:x,f(x);
180 NEXT x
190 PLOT LINES
200 SET WINDOW -180-360,180,-4,4
210 DRAW grid (45,1)
220 FOR x=-180 TO 180
230 PLOT LINES:x,g(x);
240 NEXT x
250 PLOT LINES
260 END

  │ │     ├組込みのDrawgridを使わずに, 白石 和夫 2006/02/28 11:33:31  ツリーへ

Re: 試してみました。ありがとうございます。 返事を書く
白石 和夫 2006/02/28 11:33:31
組込みのDraw gridを使わずに,
LibrayフォルダにあるAXES2.LIBを参考にして
独自のルーチンを作成してください。

  │ │     └version5.7.0で,ビットマップ(画面)モード... 白石 和夫 2006/03/04 14:39:28  ツリーへ

Re: 試してみました。ありがとうございます。 返事を書く
白石 和夫 2006/03/04 14:39:28
version 5.7.0で,ビットマップ(画面)モードでもSET VIEWPORTが使えるようにしました。
viewportの意味が分かれば(それが難解なのが欠点),プログラムは簡単になります。
100 SET bitmap SIZE 801, 401
110 ASK DEVICE WINDOW dwleft,dwright,dwbottom,dwtop
120 OPTION ANGLE DEGREES
130 DEF f(x)=x^3-3*x
140 DEF g(x)=SIN(x)
150 SET VIEWPORT dwleft,dwleft+(dwright-dwleft)/2,dwbottom,dwtop
160 SET WINDOW -4,4,-4,4
170 DRAW axes
180 FOR x=-4 TO 4 STEP 0.1
190 PLOT LINES:x,f(x);
200 NEXT x
210 PLOT LINES
220 SET VIEWPORT dwleft+(dwright-dwleft)/2,dwright,dwbottom,dwtop
230 SET WINDOW -180,180,-4,4
240 DRAW grid (45,1)
250 FOR x=-180 TO 180
260 PLOT LINES:x,g(x);
270 NEXT x
280 PLOT LINES
290 END

  │ │      └(仮称)十進BASICver.5.7.4ダウンロードし、 多田幸生 2006/03/15 18:26:02  ツリーへ

Re: version5.7.0で,ビットマップ(画面)モード... 返事を書く
多田幸生 2006/03/15 18:26:02
(仮称)十進BASIC ver. 5.7.4ダウンロードし、
教えていただいた上のプログラムを走らせてみました。
だいぶわかってきました。
しばらく忙しく見ていない間にも新しいことを教えていただき
ありがとうございました。

  │ └もし,計算は平行して行いたいのであれば,... 白石 和夫 2006/02/27 14:06:12  ツリーへ

Re: 早速のお答えありがとうございます。 返事を書く
白石 和夫 2006/02/27 14:06:12
もし,計算は平行して行いたいのであれば,配列に保存しておいてMAT PLOT文で曲線を描くという手法もあります。

  ウインドウ、ビューポートのサポート 山中和義 2006/02/28 20:26:21  ツリーへ

Re: 複数の座標軸の設定 返事を書く
山中和義 2006/02/28 20:26:21
ウインドウ、ビューポートのサポート
N88系のWINDOW、VIEW文を組込めば解決できます。


!WINDOW/VIEWを使ったサンプル 十進BASIC  2006.2.28

!API宣言文
DECLARE EXTERNAL SUB GL2D.gl2Axes
DECLARE EXTERNAL SUB GL2D.gl2ClearColor
DECLARE EXTERNAL SUB GL2D.gl2End
DECLARE EXTERNAL SUB GL2D.gl2Grid
DECLARE EXTERNAL SUB GL2D.gl2InitWindowSize
DECLARE EXTERNAL SUB GL2D.gl2Ortho
DECLARE EXTERNAL SUB GL2D.gl2Line
DECLARE EXTERNAL SUB GL2D.gl2Viewport

PUBLIC NUMERIC c_Eps
LET c_Eps=1e-13 !有効桁数精度
!-------------------------------------------------------------


100 CALL gl2InitWindowSize(1000,500) !※SET bitmap SIZE 1000, 500

110 OPTION ANGLE DEGREES
120 DEF f(x)=x^3-3*x
130 DEF g(x)=SIN(x)

140 CALL gl2Ortho(-4,4,-4,4) !ウインドウ設定 ※SET WINDOW -4,4+8,-4,4
145 CALL gl2Viewport(0,0,500,500) !ビューポート設定 ※
150 CALL gl2Axes(1,1) !グリッドを描く ※DRAW axes
160 FOR x=-4 TO 4 STEP 0.1
170 CALL gl2Line(x,f(x)) !※PLOT LINES:x,f(x);
180 NEXT x
190 CALL gl2End !※PLOT LINES

200 CALL gl2Ortho(-180,180,-4,4) !※SET WINDOW -180-360,180,-4,4
205 CALL gl2Viewport(500,0,500,500) !※
210 CALL gl2Grid(45,1) !※DRAW grid (45,1)
220 FOR x=-180 TO 180
230 CALL gl2Line(x,g(x)) !※PLOT LINES:x,g(x);
240 NEXT x
250 CALL gl2End !※PLOT LINES

260 END

   └続き 山中和義 2006/02/28 20:37:23  ツリーへ

Re: ウインドウ、ビューポートのサポート 返事を書く
山中和義 2006/02/28 20:37:23
続き

サブルーチン部分
http://www.urban.ne.jp/home/kz4ymnk/seminar/basic/viewport.txt

    └山中様 多田幸生 2006/03/01 15:36:16  ツリーへ

Re: 続き 返事を書く
多田幸生 2006/03/01 15:36:16
山中様
ありがとうございます。
上のプログラムを走らせてみました。
私のしたいこともできそうです。
感謝です。


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