3

可能重复:
圆到圆段碰撞

我是 iOS 开发的初学者。您知道如何使用 CoreGraphic绘制这样的图像http://www.hoodshomecenters.com/product_images/v/723/QuarterRound__65714_zoom.jpg吗?

4

3 回答 3

12

这是绘制圆弧部分的代码。绘制完成后,您可以在其中绘制线条。

#include <math.h>

CGFloat radius = 100;

CGFloat starttime = M_PI/6; //1 pm = 1/6 rad
CGFloat endtime = M_PI;  //6 pm = 1 rad

//draw arc
CGPoint center = CGPointMake(radius,radius);
UIBezierPath *arc = [UIBezierPath bezierPath]; //empty path
[arc moveToPoint:center];
CGPoint next;
next.x = center.x + radius * cos(starttime);
next.y = center.y + radius * sin(starttime);
[arc addLineToPoint:next]; //go one end of arc
[arc addArcWithCenter:center radius:radius startAngle:starttime endAngle:endtime clockwise:YES]; //add the arc
[arc addLineToPoint:center]; //back to center

[[UIColor yellowColor] set];
[arc fill];

您需要覆盖将用于显示此绘图的视图的 drawRect 方法。

于 2012-08-31T08:52:26.840 回答
2

UIBezierPath您可以使用该方法绘制带有类的弧段bezierPathWithArcCenter:radius:startAngle:endAngle:clockwise。看看这里

您还需要使用以下组合为线条创建路径CGContextMoveToPoint/ CGContextAddLineToPoint

stroke最后,您通过调用路径上的方法来描边。

编辑 要绘制你可能想要剪辑的内线:这是用CGContextClip函数完成的

于 2012-08-31T08:21:44.927 回答
0

你当然可以使用

void CGContextAddArcToPoint

文档:

CGContext 参考

于 2012-08-31T08:25:55.750 回答