PLOT AREAとMAT PLOT CELLSの描く図形の正確さ nor 2003/10/29 00:25:53 └ビットマップのドット数が横方向に200個ある... 白石和夫 2003/10/29 21:02:17 └ピクセルを主体に思考したいのであれば, 白石和夫 2003/10/29 21:57:08 └さっそくのお返事ありがとうございます。 nor 2003/10/30 12:33:35 └PLOTAREAではうまくいきました。 nor 2003/11/01 00:27:59 └内部での計算誤差があるようです。調べてみ... 白石和夫 2003/11/01 17:37:11 └修正版を作成しました。 白石和夫 2003/11/02 08:39:22 └Dwlphi5だと不具合があるので,Delphi6を使... 白石和夫 2003/11/03 09:58:00 └さっそくの対応ありがとうございます.いつも... nor 2003/11/04 22:04:31
PLOT AREAとMAT PLOT CELLSの描く図形の正確さ nor 2003/10/29 00:25:53 ツリーへ
PLOT AREAとMAT PLOT CELLSの描く図形の正確さ |
返事を書く |
nor 2003/10/29 00:25:53 | |
はじめましてnorと申します。気軽にプログラムが書けるので便利に使わせていただいています。メッシュマップのようなものを作りたくて、PLOT AREAやMAT PLOT CELLSを使ってプログラムを書いてみたのですが、描画される図形の正確さが気になって質問します。 SET BITMAP SIZE 200,200 SET WINDOW 1,11,11,1 FOR y=1 TO 10 FOR x=1 TO 10 SET AREA COLOR y*x PLOT AREA : x,y; x+1,y; x+1,y+1; x,y+1 NEXT x NEXT y END このプログラムを実行すると、10×10の塗りつぶされた四角形が描かれますが、それぞれの四角形は20×20ドットになることを期待しています。しかし、実際に書かれるのは、6行目と6列目の四角形は19×19ドットで、10行目と10列目は21×21ドットになってしまいます。また、 OPTION BASE 1 SET BITMAP SIZE 200,200 DIM col(10,10) FOR y=1 TO 10 FOR x=1 TO 10 LET col(x,y)=x*y NEXT x NEXT y SET WINDOW 0,10,10,0 MAT PLOT CELLS, IN 0,0; 10,10:col END このプログラムもそれぞれの四角形が20×20ドットになることを期待しているのですが、10行目が19×19ドットになって、1ドットの細長い白い行ができてしまいます。 これは仕方のないことなのでしょうか?それとも、プログラムの書き方が間違っているのでしょうか? |
└ビットマップのドット数が横方向に200個ある... 白石和夫 2003/10/29 21:02:17 ツリーへ
Re: PLOT AREAとMAT PLOT CELLSの描く図形の正確さ |
返事を書く |
白石和夫 2003/10/29 21:02:17 | |
ビットマップのドット数が横方向に200個あると,ドット間は199個になります。それが原因なのではないでしょうか。 ドット間を200にしたければ,横方向のドット数は201にしなければなりません。 |
└ピクセルを主体に思考したいのであれば, 白石和夫 2003/10/29 21:57:08 ツリーへ
Re: ビットマップのドット数が横方向に200個ある... |
返事を書く |
白石和夫 2003/10/29 21:57:08 | |
ピクセルを主体に思考したいのであれば, SET WINDOW 0,199,0,199 あるいは, SET WINDOW 0,199,199,0 のように座標系を設定してください。 |
└さっそくのお返事ありがとうございます。 nor 2003/10/30 12:33:35 ツリーへ
Re: ピクセルを主体に思考したいのであれば, |
返事を書く |
nor 2003/10/30 12:33:35 | |
さっそくのお返事ありがとうございます。 たまたま10×10ドットの四角が多く描かれたので,ピクセルと座標の関係を勘違いしていました. ピクセル主体で試してみます. |
└PLOTAREAではうまくいきました。 nor 2003/11/01 00:27:59 ツリーへ
Re: さっそくのお返事ありがとうございます。 |
返事を書く |
nor 2003/11/01 00:27:59 | |
PLOT AREAではうまくいきました。 SET BITMAP SIZE 200,200 SET WINDOW 1,200,200,1 FOR y=1 TO 200 STEP 20 FOR x=1 TO 200 STEP 20 SET AREA COLOR y*x PLOT AREA : x,y; x+19,y; x+19,y+19; x,y+19 NEXT x NEXT y END ただ、MAT PLOT CELLS命令を使った場合、 DIM col(2,2) DATA 1,2 DATA 3,4 MAT READ col SET BITMAP SIZE 400,400 SET WINDOW 0,2,0,2 MAT PLOT CELLS,IN 0,0;2,2:col END で、上端と右端に1ドットの白い線が出来てしまいます。 だめもとで、SET BITMAP SIZEを401,401にしても同じです。 また、 SET WINDOW 0,399,0,399 MAT PLOT CELLS,IN 0,0;399,399:col でも同じです。 まだ間違っていますか?初心者なので、勘違いしている ところがあるかもしれませんがよろしくお願いします。 |
└内部での計算誤差があるようです。調べてみ... 白石和夫 2003/11/01 17:37:11 ツリーへ
Re: PLOTAREAではうまくいきました。 |
返事を書く |
白石和夫 2003/11/01 17:37:11 | |
内部での計算誤差があるようです。調べてみます。 |
└修正版を作成しました。 白石和夫 2003/11/02 08:39:22 ツリーへ
Re: 内部での計算誤差があるようです。調べてみ... |
返事を書く |
白石和夫 2003/11/02 08:39:22 | |
修正版を作成しました。 なお,この版からDelphi5使用になります。 |
└Dwlphi5だと不具合があるので,Delphi6を使... 白石和夫 2003/11/03 09:58:00 ツリーへ
Re: 修正版を作成しました。 |
返事を書く |
白石和夫 2003/11/03 09:58:00 | |
Dwlphi5だと不具合があるので,Delphi6を使用します(ver.5.1.2)。肥大化しています(1Mバイト超)。また,Deplhi3との非互換が原因の未知のバグが潜むかも知れません。 |
└さっそくの対応ありがとうございます.いつも... nor 2003/11/04 22:04:31 ツリーへ
Re: Dwlphi5だと不具合があるので,Delphi6を使... |
返事を書く |
nor 2003/11/04 22:04:31 | |
さっそくの対応ありがとうございます.いつもお返事や対応のすばやさにも驚くばかりです. 改良に少しばかりお役に立ててうれしいです.また気がついた点があったらレポートします. これからも、便利に使わせていただきます.良いソフトをありがとうございます. |