如何使用CGPathAddCurveToPoint创建一个完美的半圈?

时间:2012-08-17 20:33:25

标签: iphone ios ipad core-graphics cgpath

我正在尝试使用CGPathAddCurveToPoint创建一个15点半径的完美右半圆,如下所示:

CGPathMoveToPoint(path, NULL, 0, 0);
CGPathAddCurveToPoint(path, NULL, 15, 0, 15, 30, 0, 30);

它从圆圈的中间开始。 然后将第一个控制点设置为圆的边界框的右上角。 第二个控制点设置在圆的边界框的右下角。 圆圈终止于边界框的底部中间。

但绘制时,圆圈呈卵形。

如何从0,0点向右开始到0,30结束,制作一个完美无瑕的右半球?

1 个答案:

答案 0 :(得分:5)

CGPathAddCurveToPoint创建Bézier curve,而不是圆弧。您要查找的方法是CGPathAddArcCGPathAddArcToPoint,如下所示:

CGPathMoveToPoint(path, NULL, 0, 0);
CGPathAddArc(path, NULL, 0, 15, 15, M_PI_2, -M_PI_2, true);