원을 그리는 것은 쉽지만 부채꼴을 그리기 위해서는 조금더 알아야 할것이 존재한다.
먼저 코드와 실행 화면을 보자.
//View::OnPaint
CBrush NewBrush( RGB( 0, 192, 192 ) );
CBrush* pOldBrush = dc.SelectObject( &NewBrush );
// CRect를 사용해 특정 좌표를 기억한 이후
CRect PieRect(20, 20, 140, 140);
// Pie 함수를 사용해 부채꼴을 그린다.
dc.Pie( PieRect,
CPoint( PieRect.CenterPoint().x, PieRect.top ),
CPoint(PieRect.right, PieRect.CenterPoint().y));
PieRect = CRect( 150, 20, 270, 140 );
// Pie 함수를 사용해 부채꼴을 그린다.
dc.Pie( PieRect,
CPoint( PieRect.right, PieRect.CenterPoint().y ),
CPoint( PieRect.CenterPoint().x, PieRect.top ) );
dc.SelectObject( pOldBrush );
// 실행 화면

일단 다음 처럼 부채꼴을 띄울 수 있는데
사용해야 할 함수는 CDC에 존재하는 Pie 함수 이다.
Pie 함수는 시작점과, 끝점을 지정해 주면,
시작점을 기준으로 끝점까지 반시계 방향으로 그림을 그리게 된다.
//View::OnPaint
dc.Pie( PieRect,
CPoint( PieRect.CenterPoint().x, PieRect.top ),
CPoint(PieRect.right, PieRect.CenterPoint().y));
이 부분을 보면, 먼저 PieRect라는 CRect를 넘겨주면서,
2번째 인자로 부채꼴의 시작점, 3번째 인자로 부채꼴의 끝점을 보내준다.
즉 PieRect안에서 반시계 방향으로 시작부터 끝까지 그려준다고 볼 수 있다.
CRect 클래스 안에는 CenterPoint라는 함수가 존재 하는데,
예제에서는 x축이 20~140까지의 사각 영역중에 중간, 80이라는 위치가 나오게 될 것이다.
(y축도 마찬가지)
그런 식으로 부채꼴의 시작, 끝을 잡아 주고 있다.
마찬가지로, 2번째의 부채꼴 역시,
//View::OnPaint
dc.Pie( PieRect,
CPoint( PieRect.right, PieRect.CenterPoint().y ),
CPoint( PieRect.CenterPoint().x, PieRect.top ) );
PieRect를 안을 기준으로,
시작점, 끝점을 각각 잡아 주고 부채꼴의 도형을 그리고 있다.
'프로그래밍 > MFC' 카테고리의 다른 글
MFC-비트맵 띄우기 (0) | 2010.05.16 |
---|---|
MFC-가상 버튼 만들기 (0) | 2010.05.16 |
MFC-도형 그리기 (0) | 2010.05.16 |
MFC-선 그리기 (0) | 2010.05.16 |
MFC-GDI의 개념 (0) | 2010.05.16 |