2013-08-22 48 views
3

畫一個餅我得出目標C一弧用下面的代碼目標C

[newPath appendBezierPathWithArcWithCenter:center radius:radius startAngle:startAngle endAngle:endAngle]; 

現在我想借鑑中央兩行弧的兩端。我怎麼做?我可以用下面的代碼畫一條邊:

[newPath lineToPoint:center]; 

但是另一邊呢。

+0

您使用三角法計算圓弧的起始點,然後在光標位於中心時點擊[newPath lineToPoint:startingPoint]。 – 2013-08-22 05:21:15

回答

4

最簡單的方式做畫一個大餅是用事實appendBezierPathWithArcWithCenter:...繪製 線從當前點到圓弧的起點:

// Start at the center of the circle: 
[newPath moveToPoint:center]; 
// This draws a line from the center to the starting point of the arc AND the arc: 
[newPath appendBezierPathWithArcWithCenter:center radius:radius startAngle:startAngle endAngle:endAngle]; 
// Closing the path draws a line from the end point of the arc back to the center: 
[newPath closePath]; 
+0

在iOS SDK中的等效方法是addArcWithCenter: –

0

我現在沒有機會測試它,但你可以嘗試這樣的事情。 (?)

#import "math.h" 

[newPath moveToPoint:center]; 
[newPath addLineToPoint:CGPointMake(center.x + radius * cos(endAngle * M_PI/180), 
            center.y + radius * sin(endAngle * M_PI/180))]; 

[newPath moveToPoint:center]; 
[newPath addLineToPoint:CGPointMake(center.x + radius * cos(startAngle * M_PI/180), 
            center.y + radius * sin(startAngle * M_PI/180))];