そこでテクスチャを中心点から拡大と縮小をしたいと考えているのですがうまくいきません。
最初は以下のコードを使って、ウィンドウサイズ/2 - テクスチャのサイズ/2を左上に座標指定してやろうとしたのですが
拡大率があがるたびに左下へと座標がずれてゆきます。
できればAndroidのギャラリーみたくテクスチャを中心において拡大縮小のようなことをやりたいのですが
うまく行きません。
よろしければわかる方やり方をご教授いただけないでしょうか?
以下が変数の定義と座標変換のコードとなっています。
出力用座標値(-1.0~1.0)
float vertexes[]
{
x1,y1,z1,//左上座標
x2,y2,z2,//右上座標
x3,y3,z3,//左下座標
x4,y4,z4 //右下座標
}
画像の2次元座標
float x,y;
画像サイズ
float texturewidth, textureheight;
ウィンドウサイズ
float windowwidth, windowheight;
倍率
float scale;
座標の求め方
x1 = ((x/windowwidth)*scale)*2.f-1.f;
x2 = (((x+texturewidth)/windowwidth)*scale)*2.f-1.f;
x3 = x1; //正方形なので、x1と座標が同じ
x4 = x2; //正方形なので、x2と座標が同じ
y1 = ((y/windowheight)*scale)*2.f-1.f;
y2 = (((y+windowheight)/windowheight)*scale)*2.f-1.f;
y3 = y1; //正方形なので、y1と座標が同じ
y4 = y2; //正方形なので、y2と座標が同じ
zは全て座標値を0.fにしております。