CALayer 서브 클래스 내에서 드로잉 기능 내부에 호를 그릴 때 문제가 있습니다.시계 방향 대신 시계 반대 방향으로 CGContextAddArc
-(void)drawInContext:(CGContextRef)ctx
{
CGPoint center = CGPointMake(self.bounds.size.width/2, self.bounds.size.height/2);
CGFloat radius = MIN(center.x, center.y);
CGContextBeginPath(ctx);
CGContextAddArc(ctx, center.x, center.y, radius, DEG2RAD(0), DEG2RAD(90), YES);
CGContextSetStrokeColorWithColor(ctx, [UIColor whiteColor].CGColor);
CGContextSetLineWidth(ctx, 5);
CGContextDrawPath(ctx, kCGPathStroke);
}
아무것도 너무 여기에 획기적인 없지만, 이상한 것은 내가이 시계 방향 갈까요 것을 규정에도 불구하고이 시계 반대 방향으로 호를 그리는 것이다 다음과 같이 그 그리기 기능의 구현이다. 반대로 시계 방향 매개 변수에 NO를 지정하면 호를 시계 방향으로 그립니다. 나는 플립 된 좌표계에 대한 연구를 수행했는데 이것이 문제가 무엇인지 알았지 만, 필자가 말한 것과 반대의 bool 매개 변수를 하드 코딩하고 싶지 않았습니다. 이 문제를 해결하는 방법에 대한 제안 사항이 있으십니까?
감사합니다.
슈퍼 빠른 응답 및 설명 주셔서 감사합니다! 내가 게시 한 코드를 추가하려고 시도했지만 예상대로 시계 방향으로 그리기는하지만 0-90도 범위에서 예상되는 원의 오른쪽 아래 사분면을 그리는 대신 시계 방향으로 0-270도 범위를 그립니다. 어떤 아이디어? –
방금 시도했는데 동쪽 (0도)에서 시계 방향으로 북쪽 (90도)까지 3/4 원을 그립니다. 원의 오른쪽 아래 사분면을 원할 경우 시계 방향으로 0도에서 270도 (남쪽에 위치) 여야합니다. 시계 방향 매개 변수는 각도가 해석되는 방식을 변경하지 않으며 원의 "반"만 그려집니다. –
오 ~ 그래, 왜 그런지 이해할 수있을 것 같아. 플립 변형으로 90도와 270도 위치가 바뀌고 x가 홀로 남았 어. 미안합니다. –