2012-10-03 153 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)。

对于每个以下的环,您需要根据外圆的面积减去构成环的内圆的面积来计算环的厚度。您需要编写一个公式,该公式解决了给定所需面积和半径或前一个圆的外半径。