1

中心(x,y)と半径rだけで円を描きたいです。

を使って円を描きましたCGRect。独立した円を描くとうまくいきます。しかし、円周上に円を描こうとしています。

このアプローチの問題は次のとおりです。外側の円は を使用して作成されるため、メインの円は外側の円の中心を正確に移動していませんCGRect/frame

中心と半径を使用して円を描くことができれば、私を助けてください。

4

3 に答える 3

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で円を描きます

于 2012-04-08T15:47:40.653 に答える
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);
于 2014-11-05T00:42:48.610 に答える