SDL座標系

SDL座標系
• 座標値は整数
• 最小値は0、最大値は
SDL_X_SIZE,SDL_Y_SIZE
(0,0)-(SDL_X_SIZE,SDL_Y_SIZE)
SDL座標系
SDL_Y_SIZE
(0,0)
・
(X_ORIGIN,Y_ORIGIN)
SDL_X_SIZE
(SDL_X_SIZE,SDL_Y_SIZE
)
描画座標系
• 座標値は実数でもOK
• 最小値、最大値はユーザーが設定
X_SIZE,Y_SIZEで範囲を設定
最小値をx_min,y_minとすると、
(x_min,y_min) (x_min+X_SIZE,y_min+Y_SIZE)
描画座標系
Y_SIZE
(x_min,y_min+Y_SIZE)
・
(0,0)
X_SIZE
(x_min+X_SIZE,y_min)
SDL座標系と描座標系
実際に描画するのはSDL座標系:
描画座標系での座標値をSDL座標系での座標値に変換する。
1.描画座標系でのサイズをSDL座標系でのサイズに丸める。
2.Y軸の値を反転させる。
3.SDL座標系における描画座標系の原点オフセットを加える。
4.SDL座標系の範囲を越えたら、範囲内に丸める。
写像
SDL座標系
(0,0)
描画座標系
(-1/2X_SIZE,1/2Y_SIZE)
(X,Y)
(x,y)
(X_ORIGIN,Y_ORIOGIN)
(SDL_X_SIZE,SDL_Y_SIZE
)
(0,0)
(1/2X_SIZE,-1/2Y_SIZE)
X = (SDL_X_SIZE/X_SIZE)*x + X_ORIGIN
Y = - (SDL_Y_SIZE/Y_SIZE)*y + Y_ORIGIN