〜中級編〜(中級的な関数の使い方)






51. 画像を回転、拡大縮小描写する。

画像の回転と拡大、描写を同時に扱える関数がDrawRotaGraphです。仕様詳細についてはこちらをご覧ください。

DrawRotaGraph( X座標 , Y座標 , 拡大率 , 回転角度 , 画像ハンドル , 透過フラグ , 反転表示フラグ);

拡大率は1.0で等倍です。回転角度はラジアンで指定します。0度は0ラジアン、180度は3.14ラジアン、つまりπです。

360度は3.14*2ラジアンであり、0と同じです。3.14*2ラジアンと0ラジアンは同じですから、

360度ごとに最初に戻ります。つまりラジアンは増やしっぱなしでもくるくる回ってくれます。円周率は最初に

#define PI 3.1415926

このように定義しておきましょう。

初めて出てきた「反転表示フラグ」は画像を左右反転させて表示するかどうかのフラグでTRUEにすると反転、

FALSEにすると、反転せず普通に描画します。


#include "DxLib.h"
#define PI 3.1415926
 
int image[16],count=0;
char Key[256];
 
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
        if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1;
        SetDrawScreen( DX_SCREEN_BACK );
        LoadDivGraph( "char.png" , 16 , 4 , 4 , 32 , 32 , image ) ;
 
        while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && Key[KEY_INPUT_ESCAPE]==0){
                
                DrawRotaGraph( 320 , 240 , (double)count*0.01 , PI*((double)count*0.001) , image[0] , TRUE  ) ;
 
                count++;
                ScreenFlip();
        }
        DxLib_End();
        return 0;
}

→掲示板で質問する



- Remical Soft -