我是Iphone的新手。我想画一个不同颜色的圆圈。并且所有颜色应该覆盖相等的区域。就像我想要10种不同的颜色一样。然后每种颜色应覆盖圆的1/10区域。我不想在这里画一个饼图。也不要尝试使用10种不同的颜色。只需要10个相等的圆圈部分,每个部分都可以填充颜色。 我正在努力建造一个财富轮。这样较小的轮子位于较大的轮子上方。然后我想分开拖动它们。 还可以在Core Animation的帮助下完成这项工作吗?
答案 0 :(得分:2)
含糊不清的问题。如果你绘制一个10个相等区域的饼图,那么每个将覆盖该区域的1/10,从而满足您的要求,不是吗?
圆圈有360°,所以除以10,每个楔子应有36°。现在你只需绘制10个楔形,这个页面可以帮助你:
http://www.raywenderlich.com/2106/core-graphics-101-arcs-and-paths
答案 1 :(得分:0)
既然你说你不想要饼形切片,你想要同心环吗?
你确定你想要平等的区域吗?这将使环的厚度不同。最里面的戒指将相当厚,每个向外的戒指都会更薄。在外圈上更薄。
我们的眼睛习惯于靶心形成,每个环的厚度相同。
在任何情况下,您都应该查看CAShapeLayer对象。您可以为每个环创建一个形状图层,用于定义具有2个圆的闭合路径。有一种称为“缠绕规则”的东西可以让你确定路径重叠时会发生什么。我想你想要偶数路径绕组(kCAFillRuleEvenOdd)。
要使戒指等于区域,您可以这样做:
首先计算整个圆的面积。除以响铃次数。这是每个环的理想区域让我们称之为“a”区域。从中心出发。该环的半径(圆圈)将为sqrt(pi / a)。
对于每个后续环,您需要根据外圆的面积减去构成环的内圆的面积来计算环的厚度。您需要编写一个方程式,在给定所需区域和半径或前一个圆的情况下求解外半径。