ピクセル座標(独自の拡張)

ピクセル座標は,左下端のピクセルを原点(0,0)とし,右方向にいくつめであるかをx座標,上方向にいくつめであるかをy座標とする座標である。

組込み関数

以下,x,yは数値式を書く。

PIXELX(x) 問題座標xに対応するピクセルx座標
PIXELY(y) 問題座標yに対応するピクセルy座標

WORLDX(x) ピクセルx座標を問題座標に変換
WORLDY(y) ピクセルy座標を問題座標に変換
PROBLEMX(x) WORLDX(x)と同義
PROBLEMY(y) WORLDY(y)と同義

<Note>
SET WINDOW left, right, bottom, top
によって座標系を設定したとき,ピクセル座標の上限は,PIXELX(right),PIXELY(top)により知ることができる。
したがって,描画領域中のすべての点について操作するプログラムは,

FOR i=0 TO PIXELX(right)
   FOR j=0 TO PIXELY(top)
       LET x=WORLDX(i)
       LET y=WORLDY(j)
       …………
   NEXT j
NEXT i

の形になる。

参照 旧バージョンとの相違

<補足>
  PIXELX,PIXELY,WORLDX,WORLDYは,Full BASICの命令を用いて次のように定義できる。

EXTERNAL FUNCTION PIXELX(x)
ASK WINDOW left,right,bottom,top
ASK PIXEL SIZE (left,bottom; right,top) px, py
LET PIXELX=ROUND((px-1)*(x-left)/(right-left),0)
END FUNCTION

EXTERNAL FUNCTION PIXELY(y)
ASK WINDOW left,right,bottom,top
ASK PIXEL SIZE (left,bottom; right,top) px, py
LET PIXELY=ROUND((py-1)*(y-bottom)/(top-bottom),0)
END FUNCTION

EXTERNAL FUNCTION WORLDX(x)
ASK WINDOW left,right,bottom,top
ASK PIXEL SIZE (left,bottom; right,top) px, py
LET WORLDX=(right-left)*x/(px-1)+left
END FUNCTION

EXTERNAL FUNCTION WORLDY(y)
ASK WINDOW left,right,bottom,top
ASK PIXEL SIZE (left,bottom; right,top) px, py
LET WORLDY=(top-bottom)*y/(py-1)+bottom
END FUNCTION