kyuseo의 게임 프로그래밍
UnionRect , InflateRect , IntersectRect, OffsetRect :: CRect 교집합,이동,증가 함수들 본문
UnionRect , InflateRect , IntersectRect, OffsetRect :: CRect 교집합,이동,증가 함수들
kyuseo 2007. 10. 24. 13:44개요.. |
RECT 구조체를 교집합, 이동, 증가하기 등을 처리할 경우 직접 코드를 작성하여도 좋지만, 이미 제공되는 함수도 쓸만한 것들이 많이 있습니다.
쓸만한 Rect 관련 API 함수 |
BOOL UnionRect( LPRECT lprcDst, // destination rectangle
두개의 사각형으로 하나의 사각형으로 합한다. 면적이 0이면 FALSE 아니면 TRUE 를 리턴한다.
BOOL InflateRect( LPRECT lprc, // rectangle
dx 만큼 좌측은 빼주고 우측을 더해주어 전체 가로면적을 Width + dx*2 만큼 증가하고 dy 만큼 위쪽은 빼주고 아래쪽을 더해주어 전체 세로면적을 Height + dy*2 만큼 증가한다. 성공시 TRUE, 실패시 FALSE 을 리턴한다.
BOOL IntersectRect( LPRECT lprcDst, // intersection buffer
두개의 사각형의 교집합을 구한다. 교집합이 없다면 FALSE 을 있다면 TRUE 을 리턴한다.
BOOL OffsetRect( LPRECT lprc, // rectangle
사각형을 dx, dy 만큼 이동시킨다. 성공시 TRUE, 실패시 FALSE 을 리턴한다.
CRect 에도 비슷한 함수들이 존재합니다.
CRect rc1( 10, 10, 100, 100 ); CRect rc2( 20, 20, 200, 200 );
CRect rc3; rc3.UnionRect( rc1, rc2 );
ASSERT( rc3 == CRect( 10, 10, 200, 200 ) ); |