2012-04-08 16 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); 
関連する問題