[OpenGL]テクスチャの中心点からの拡大縮小

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
yui

[OpenGL]テクスチャの中心点からの拡大縮小

#1

投稿記事 by yui » 13年前

現在AndroidのOpenGLでテクスチャの表示を試しています。
そこでテクスチャを中心点から拡大と縮小をしたいと考えているのですがうまくいきません。
最初は以下のコードを使って、ウィンドウサイズ/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にしております。
よろしくお願いいたします。

“C言語何でも質問掲示板” へ戻る