CGPathDrawingMode 열거형
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
그리기 모드.
public enum CGPathDrawingMode
type CGPathDrawingMode =
- 상속
-
CGPathDrawingMode
필드
EOFill | 1 | 짝수 홀수 규칙을 사용하여 경로를 채웁니다. |
EOFillStroke | 4 | 짝수 홀수 규칙을 사용하여 경로를 채우고 스트로크합니다. |
Fill | 0 | 0이 아닌 권선 규칙을 사용하여 경로를 채웁니다. |
FillStroke | 3 | 0이 아닌 권선 규칙을 사용하여 경로를 채우고 스트로크합니다. |
Stroke | 2 | 경로를 스트로크합니다. |
설명
이 열거형을 사용하면 애플리케이션 개발자가 채우기, 스트로크 또는 둘 다 경로 표시 중에서 선택할 수 있습니다. 또한 개발자는 코어 그래픽 서 있는 "0이 아닌 권선 규칙" 채우기 모드 또는 "짝수 홀수 규칙" 채우기 모드를 사용할지 여부를 선택할 수 있습니다.
"0이 아닌 권선 규칙"과 "짝수 홀수 규칙"은 모두 지점에서 경로 외부로 그려진 선을 고려하여 픽셀을 채울지 여부를 결정합니다.
경로가 시계 방향으로 해당 선을 교차하고 시계 반대 방향으로 횟수가 같으면 "0이 아닌 권선 규칙" 모드가 픽셀을 채우지 않습니다. 시계 방향과 시계 반대 방향 교차의 수가 0이 아닌 경우 점이 경로 내에서 고려되고 채워집니다. 다음 그림과 같이 경로 방향을 중요한 고려 사항으로 만듭니다.
교차된 경로 수가 홀수인 경우 "짝수 홀수" 규칙이 픽셀을 채웁니다. 경로의 방향을 고려하지 않습니다.
다음 예제에서는 더 복잡한 상황을 보여줍니다. 맨 위 경로는 "짝수 홀수 규칙"(EOFillStroke)으로 그려지고 아래쪽은 "0이 아닌 권선 규칙"(FillStroke)으로 채워집니다. 두 경우 모두 경로가 빨간색으로 스트로크되고 녹색으로 채워집니다.
public override void Draw (RectangleF rect)
{
base.Draw (rect);
using (var ctxt = UIGraphics.GetCurrentContext ()) {
ctxt.ScaleCTM (1, -1);
ctxt.TranslateCTM (0, -Bounds.Height);
DrawPathWithWindingMode (ctxt, Bounds.Height / 2, CGPathDrawingMode.EOFillStroke);
DrawPathWithWindingMode (ctxt, 0, CGPathDrawingMode.FillStroke);
}
}
void DrawPathWithWindingMode (CGContext ctxt, float yOffset, CGPathDrawingMode mode)
{
var points = new PointF[] {
new PointF (50, 50),
new PointF (200, 50),
new PointF (200, 100),
new PointF (50, 100),
new PointF (50, 50),
new PointF (150, 50),
new PointF (150, 150),
new PointF (100, 150),
new PointF (100, 25)
};
points = points.Select (pt => new PointF(pt.X, pt.Y += yOffset)).ToArray();
ctxt.SetStrokeColor (UIColor.Red.CGColor);
ctxt.SetFillColor (UIColor.Green.CGColor);
ctxt.MoveTo (points [0].X, points [0].Y);
for (var i = 1; i < points.Length; i++) {
ctxt.AddLineToPoint (points [i].X, points [i].Y);
}
ctxt.DrawPath (mode);
}