2016-06-29 40 views

回答

2

我建议你参考这个answer通过@rob_mayoff

给您应该创建想不display.Please图像的圆形贝塞尔路径,这种方法仅当您希望工程要在圆上均匀分布相同的图像。如果要在圆上均匀分布不同的图像,则应该加倍努力。

你可以尝试在两个方面:

  1. 通过计算它们的中心绘制圆形每贝塞尔路径。并以循环方式排列它们。你应该做一点数学。请注意,您有主圆的中心点(x,y),并将子圆围绕中心点(x,y)放置,使得每个子圆中心到主圆中心的距离应该相同。要获得划分圆的线的确切坐标,请参阅answer。一旦你得到了确切的坐标,你可以将子圆放置在这些位置。

我会尽量给有关这样一个粗略的想法:

考虑你有一个主要圆,圆心在(X0,Y0)。并且您希望将圆圈分成“n”个部分,将图像放置在该圆圈上。这样你就可以在这个主圈上放置n个imageView。下图中的'n'部分用绿线表示。

每个绿线之间的角度为360deg/N

否我们所需要的各绿线的终点。可从以下获得:

sub.x = x0 + r * cos(angle); 
sub.y = y0 + r * sin(angle); 

其中r是主圆的半径。

这是一个子圆。在yoour如果你有子圈的“N”数字,让我们做一个循环来获取所有子圈中心点:

 for(i = 1 to n) 
     { 
      angle = i * (360/n); 
      sub.x = x0 + r * cos(angle); 
      sub.y = y0 + r * sin(angle); 
     } 

enter image description here

现在你可以在每个画一个圆形贝塞尔路径“ N”子(X,Y)使用addArcWithCenter:center指向

其中中心将是所计算的子(X,Y)

  • 我想再次参照图1是如果最好的方式你想做一切动力年。
  • +0

    好的,我会试试这个答案,但你能告诉我什么是x0和y0,我怎样才能得到它的值 –

    +2

    x0和y0是圆心的值 –

    +0

    ok我以为我有为它找到一些角度。 –