複数の座標軸の設定 多田幸生 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 | |
山中様 ありがとうございます。 上のプログラムを走らせてみました。 私のしたいこともできそうです。 感謝です。 |