DX라이브러리2014. 12. 31. 16:01

4.2 이미지 자유 변형


확대, 축소 이외에 자유변형이라고 하는 처리방법도 있다. 이미지의 꼭지점 4개를 지정해줌으로써 그에 맞추어 이미지를 변형 시킬 수 있다. DrawModiGraph함수를 이용하여 구현한다. 레퍼런스는 여기를 확인하자.


선언

 int DrawModiGraph( int x1, int y1, int x2, int y2,

                              int x3, int y3, int x4, int y4, int GrHandle , int TransFlag );

기능

 메모리에 로드된 그래픽을 자유변형

인수

 x1 , y1 , x2 , y2, x3 , y3 , x4 , y4 : x1부터 순서대로 묘화할 이미지의 좌상, 우상, 우하, 좌하의 꼭지점 좌표.

 GrHangle : 묘화할 그래픽 핸들

 TransFlag : 투명도 유효 여부 (TRUE 유효, FALSE 무효)

반환값

 0 : 성공

 -1 : 에러 발생


예제


#include "DxLib.h"


int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){

        ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK ); 


        int Image;

        Image = LoadGraph( "image/character_00.png" );


        while( !ScreenFlip() && !ProcessMessage() && !ClearDrawScreen() ){


                DrawModiGraph( 

                        200,100,        //좌상

                        500,50,         //우상

                        400,300,        //우하

                        150,350,        //좌하

                        Image, TRUE );


        }


        DxLib_End();

        return 0;

}



실행결과



이방법을 통하여 3D와 비슷한 화면 연출이 가능해진다. 

Posted by 캡슐리어