``

前頁 次頁

    ピクセル座標（独自の拡張） ☆

      ピクセル座標は，左下端のピクセルを原点(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