5_4 채워진 영역에 그리기
테두리가 있는 채워진 영역을 그리기 위한 일곱개 윈도우즈 함수
Rectangle( ) 모서리가 직각인 사각형
Ellipse() 타원
RoundRect() 모서리가 둥근 사각형
Chord() 끝점이 선으로 연결된 타우너 경계선 위의 호(arc)
Pie() 타원 경계선으로 정의된 파이 모양의 쐐기
Polygon() 다각형
PolyPolygon() 여러 개의 다각형
경계가 없는 그림 그리기 --> 디바이스 컨텍스트에 NULL_PEN을 선택!
SelectObject ( hdc, GetStockObject (NULL_PEN) );
다각형 채우기 모드(ploygon0filling mode)
SetPolyFillMode() 를 사용하여 설정 가능!
SetPolyFillMode (hdc, iMode);
*교대 모드(alternate mode)와 감기 모드(winding mode)
교대 모드를 이해하기 위해, 영역 내의 한 점으로부터 무한대에 이르는 직선을 그린다고 상상해 보자. 가상의 직선이 홀수 개의 경계선과 교차할 때만 영역이 채워진다.
감기모드에서 둘러싸인 영역이 채워지는지 결정하기 위해, 영역 내의 한 점으로부터 무한대에 이르는 직선을 그린다고 상상해보자. 가상의 직선이 홀수 개의 경계선과 교차하면 영역은 채워진다. 가상의 직선이 짝수 개의 경계선과 교차하면 영역은 채워질 수도 있고 그렇지 않을 수도 있다. (이부분은 저도 잘 이해가 안가서..-_ㅜ)
[ 예제 ALTWIND.C (첨부)]
브러시로 내부 채우기
윈도우즈는 정상적으로 가능한 것보다 더 많은 색상을 표시하기 위해 디더링을 이용.
이때, 실제로 사용하는 것 = 해당 색상에 대한 브러시
* 윈도우즈 논리 브러시 만드는 다섯개 함수
1. hBrush = CreateSolidBrush (crColor) ;
2. hBrush = CreateHatchBrush (iHatchStyle, crColor); // 수평, 수직, 대각선의 해치(hatch, 교차된 평행선) 표시가 된 브러시
3. CreatePatternBrush() // 비트맵에 기반한 브러시
4. CreateDIBPatternBrushPt() // 비트맵에 기반한 브러시
5. hBrush = CreateBrushIndirect (&logbrush);
댓글 없음:
댓글 쓰기