2012-10-03 192 views
1

我是Iphone的新手。我想畫一個不同顏色的圓圈。所有的顏色應該覆蓋相同的面積。就像我想要10種不同的顏色一樣。然後每個顏色應該覆蓋圓圈的1/10區域。我不想在這裏繪製餅圖。也不試圖使用10種不同的顏色。只需要10個相等的圓圈部分,每個部分都可以填充顏色。 我正在努力打造一顆幸運輪。這樣一個較小的輪子在較大的輪子上方。然後我想分別拖動它們。 也可以在Core Animation的幫助下做到這一點?不同顏色的圓形

+0

所以它應該看起來像一個有10個大小相等的餅圖但不能成爲餅圖嗎? –

+0

您是否需要通過各種方式對不同部分進行動畫製作(您在詢問Core Animation,但不提及任何動畫)? –

+0

其實我試圖建立一個幸運輪。這樣一個較小的輪子在較大的輪子上方。然後我想單獨拖動它們 –

回答

2

含糊不清的問題。如果你繪製一個具有10個相等面積的圓形圖,那麼每個面積將覆蓋面積的1/10,從而滿足你的要求,不是嗎?

圓周有360°,所以除以10,每個楔子應該有36°。現在,你只需要畫10度挖起杆,而這個頁面可以幫助你:

http://www.raywenderlich.com/2106/core-graphics-101-arcs-and-paths

0

既然你說你不想扇形,做你想做的同心環呢?

你確定你想要平等嗎?這將使戒指厚度不同。最內層的戒指會相當厚,而你向外走時每個戒指都會變得更薄。外圈更薄。

我們的眼睛習慣於一個牛眼形成,其中每個環都是相同的厚度。

無論如何,你應該看看CAShapeLayer對象。您可以爲每個環定義一個具有2個圓圈的封閉路徑的形狀圖層。有一種叫做「纏繞規則」的東西,可以讓你確定路徑重疊時會發生什麼。我想你會想要奇數條路徑(kCAFillRuleEvenOdd)。

爲了使環面積相等,你可以這樣做:

首先計算出整個圓的面積。按環的數量劃分。這是每個環的理想區域讓我們稱這個區域爲「a」。從中心開始。該環的半徑(一個圓)將爲sqrt(pi/a)。

對於每個以下的環,您需要根據外圓的面積減去構成環的內圓的面積來計算環的厚度。您需要編寫一個公式,該公式解決了給定所需面積和半徑或前一個圓的外半徑。