2012-04-08 2 views
1

중심 (x, y) 및 반지름 r을 사용하여 원을 그립니다.iOS- 중심 및 반지름이있는 원 그리기

CGRect을 사용하여 일부 원을 그렸습니다. 독립 원을 그리면 잘 작동합니다. 그러나 나는 원의 둘레에 원을 그리려하고있다.

이 접근법에서 문제는 외부 원이 CGRect/frame을 사용하여 만들어 지므로 주 원이 외부 원의 중심을 정확히 이동하지 않는 것입니다.

그래서 중심과 반지름을 사용하여 원을 그리면 도움이됩니다.

답변

8

X, Y 및 반지름이 변수입니다.

CGRect r; 

r.origin.y = Y-radius; 
r.origin.x = X-radius; 
r.size.width = 2*radius; 
r.size.height 2*radius; 

는이 CGRect

0

프란체스코의 응답 작품에 원을 그립니다. 내가 추가 할 수있는 유일한 것은 Y와 X가 무엇인지 명확히하는 것입니다 (중심 Y와 중심 X). 여기에 드로잉을 포함하여 끝난 것이고 또한 외곽선과 같은 색으로 원을 채 웁니다.

CGFloat radius = self.bounds.size.height/4.0; 
CGFloat centerX = self.bounds.size.width/2; 
CGFloat centerY = self.bounds.size.height/2; 

CGRect r; 
r.origin.y = centerY-radius; 
r.origin.x = centerX-radius; 
r.size.width = 2*radius; 
r.size.height = 2*radius; 

CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSetLineWidth(context, 2.0); 
CGContextSetStrokeColorWithColor(context, 
            [UIColor greenColor].CGColor); 
CGContextAddEllipseInRect(context, r); 
CGContextStrokePath(context); 

CGContextSetFillColorWithColor(context, 
            [UIColor greenColor].CGColor); 
CGContextFillEllipseInRect(context, r);