2016-11-16 1 views
0

현재 순환 형 차트에서 작업 중입니다. 전체 원을 그릴 때 아무런 문제가 없습니다. 또한 3/4 원을 그릴 필요가 있습니다. 3/4 원 경로를 정의하는 수학이 있습니까? 완전한 원으로 놓친 위치 값을 줄임으로써 시도했지만 정확한 결과를 얻을 수 없습니다. 누구든지 이걸 도와 줄 수 있니? 어떤 내가서클 진행률을 "3/4"- 3/4로 그리려면 어떻게해야합니까?

UIBezierPath *circlePath = [UIBezierPath bezierPathWithArcCenter:CGPointMake(self.frame.size.width/2.0f, self.frame.size.height/2.0f) 
                   radius:(self.frame.size.height * 0.5) - ([_lineWidth floatValue]/2.0f) 
                  startAngle:DEGREES_TO_RADIANS(startAngle) 
                  endAngle:DEGREES_TO_RADIANS(endAngle) 
                  clockwise:clockwise]; 

    circle    = [CAShapeLayer layer]; 
    circle.path   = circlePath.CGPath; 
    circle.lineCap  = kCALineCapRound; 
    circle.fillColor  = [UIColor clearColor].CGColor; 
    circle.lineWidth  = [_lineWidth floatValue]; 
    circle.zPosition  = 1; [self.layer addSublayer:circle]; 
; 

, 아래 이미지 참조하시기 바랍니다 필요한 경우

3/4 Circle

참고 : 내가 웹에서 샘플 이미지를 첨부하지만 난 같은 결과를 필요로 확신했다.

답변

2

이미 필요한 코드가 있습니다. 함수 bezierPathWithArcCenter:radius:startAngle:endAngle:clockwise:은 시작 각도와 종료 각도를 취합니다. 0의 시작 각도와 3π/2의 끝 각도를 전달하면 3/4 원이 생깁니다. (3π/2는 270 개도, 또는 완전한 원의 3/4입니다.) 당신의 목표는 0에서 360도 원을 애니메이션의 경우, 다른 기술을 사용하는 데 필요한

참고. 당신이 완전한 원의 경로를 생성하도록하는 CAShapeLayer에 그 설치의 경우, 다음 1

0에서 레이어의 strokeEnd 속성을 애니메이션
관련 문제