rotzoom_m2p1.zip (mode2 pages1)
回転拡大縮小のデモです。2軸回転+16段階拡大縮小。とても遅いです。
考え方としては、物体の方を動かすのでは無く画面の方を動かします。
画面の中心を(p0x,p0y)として画面を移動したときに、ワールド座標のどこに位置するかをまず考えます。
スクリーン座標は左上を(p1x,p1y)、右下を(p4x,p4y)として1ラインずつ描いていきます。
その際、左上(p1x,p1y)がテクスチャのどこを参照するかをワールド座標から計算しておき、
ワールド座標における p1->p2 と p1->p3 への傾きに応じてテクスチャをスキャンしていきます。
拡大縮小は単なるテーブルです。元の絵64x64ドットのどこを参照するかを縮小16段階に応じて持っています。
これだけのデモなので、縮小した絵そのものを持っていてもメモリは大して圧迫しなかったかもしれません。