拡大縮小用描画関数

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

拡大縮小用描画関数

#1

投稿記事 by トト » 15年前

拡大縮小用描画関数の描画関数を作っております。

オブジェクトが消える用に使う予定でオブジェクトの中心を原点として拡大縮小するようにしたいのですが
縮小をしてしまうと右上?に消えてしまいます。
中心にするということは出来ないのでしょうか?
//元画像
■■■
■■■
■■■

//現在の処理
■□□
□□□
□□□

//こんな感じにしたいです
□□□
□■□
□□□

わかりにくくてすみません。

void DrawAlphaScale(int x,int y,int GrHandle,int Alpha,float Sx,float Sy){

    //  透明度
    int Air = Alpha;
    if(Air <= 0) Air = 0;
    else if(Air >= 255) Air = 255;

    // 読みこんだグラフィックのサイズを得る
    int SizeX,SizeY;
    GetGraphSize( GrHandle , &SizeX , &SizeY );

    // 描画ブレンドモードをαブレンドにする
    SetDrawBlendMode(DX_BLENDMODE_ALPHA,Air);
    // グラフィックの描画
    DrawExtendGraph( x-SizeX/2 , y-SizeY/2 , x + int(SizeX*Sx)-SizeX/2 , y + int(SizeY*Sy)-SizeY/2 , GrHandle , TRUE ) ;
    // 描画ブレンドモードをノーブレンドにする
    SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 );
}

Dixq (管理人)

Re:拡大縮小用描画関数

#2

投稿記事 by Dixq (管理人) » 15年前

RotaGraphじゃだめなんでしょうか?

Ma

Re:拡大縮小用描画関数

#3

投稿記事 by Ma » 15年前

DrawExtendGraph( x-SizeX/2 , y-SizeY/2 , x + int(SizeX*Sx)-SizeX/2 , y + int(SizeY*Sy)-SizeY/2 , GrHandle , TRUE ) ;

DrawExtendGraph( x-int(SizeX*Sx)/2 , y-int(SizeY*Sx)/2 , x + int(SizeX*Sx)/2 , y + int(SizeY*Sx)/2 , GrHandle , TRUE ) ;

トト

Re:拡大縮小用描画関数

#4

投稿記事 by トト » 15年前

Dixq (管理人)様
横だけや縦だけの縮小をする可能性があるので個々に設定したいです><

Ma様
ありがとうございます!!出来ました~。

閉鎖

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