ASK PIXEL SIZE の不具合?

 投稿者:日高  投稿日:2011年11月 6日(日)11時13分15秒
  画素数を取得する命令文 ASK PIXEL SIZE (x1,y1;x2,y2) a,b が、座標系によっては負の値を返します。

100 SET BITMAP SIZE 401,401
    !
110 SET WINDOW 0,1,0,1
120 CALL pixel
    !
130 SET WINDOW 1,0,0,1
140 CALL pixel
    !
150 SET WINDOW 0,1,30,10
160 CALL pixel
    !
170 SET WINDOW 9,4,30,10
180 CALL pixel
    !
190 SUB pixel
200    ASK WINDOW L,R,B,T
210    ASK PIXEL SIZE (L,B;R,T) w,h
220    PRINT w;h,
230    PLOT POINTS: L+(R-L)/4,B+(T-B)/4;L+(R-L)/2,B+(T-B)/2
240    ASK PIXEL SIZE (L+(R-L)/4,B+(T-B)/4;L+(R-L)/2,B+(T-B)/2) w,h
250    PRINT w;h,  !描画領域の1/4の画素数
260    ASK PIXEL SIZE w,h  !十進BASIC独自拡張
270    PRINT w;h
280 END SUB
    !
290 END
 

Re: ASK PIXEL SIZE の不具合?

 投稿者:白石和夫  投稿日:2011年11月 6日(日)12時17分23秒
  > No.1694[元記事へ]

ご報告ありがとうございました。
座標系の逆転を考えていなかったのは見落としでした。修正します。

SET WINDOW 4,0,4,0
ASK PIXEL SIZE (4,4;0,0) a,b
PRINT a,b
END
 

Re: ASK PIXEL SIZE の不具合?

 投稿者:白石和夫  投稿日:2011年11月 6日(日)15時12分49秒
  > No.1695[元記事へ]

修正しました。
他に(あるいは新たな)不具合を見つけたときはお知らせください。
 

Re: ASK PIXEL SIZE の不具合?

 投稿者:日高  投稿日:2011年11月 6日(日)22時11分58秒
  白石和夫さんへのお返事です。

早々にご対応いただきありがとうございます。十進BASICは仕事でも使わせていただいております。助かりました。

[参考] 今までの ASK PIXEL SIZE (x1,y1;x2,y2) a,b の値がほしい場合は、おそらく次の式で得られます。
          LET a=PIXELX(MAX(x1,x2))-PIXELX(MIN(x1,x2))+1
          LET b=PIXELY(MAX(y1,y2))-PIXELY(MIN(y1,y2))+1

[追加] 修正パッチとして次の2行を加筆すれば、新旧どちらのバージョンでも正しい値になります。自作プログラムの配布などでは、ぜひ加筆して配布を。
       ASK PIXEL SIZE (x1,y1;x2,y2) a,b
       LET a=ABS(a-1)+1
       LET b=ABS(b-1)+1
 

Re: ASK PIXEL SIZE の不具合?

 投稿者:白石和夫  投稿日:2011年11月 7日(月)16時47分10秒
  > No.1696[元記事へ]

BASICAccをお使いの方は,以下のファイルでSourceフォルダ内のファイルを上書き更新してください。
IEの場合は,右クリックして「対象をファイルに保存」を選択してください。

http://www.geocities.jp/thinking_math_education/BASICAcc_Fixes/graphlib.pas

 

戻る