ピクセル座標(独自の拡張) ☆
ピクセル座標は,左下端のピクセルを原点(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