中心(x,y)と半径rだけで円を描きたいです。
を使って円を描きましたCGRect
。独立した円を描くとうまくいきます。しかし、円周上に円を描こうとしています。
このアプローチの問題は次のとおりです。外側の円は を使用して作成されるため、メインの円は外側の円の中心を正確に移動していませんCGRect/frame
。
中心と半径を使用して円を描くことができれば、私を助けてください。
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で円を描きます
フランチェスコの答えは機能します。私が追加したい唯一のことは、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);