2014-11-21 51 views
0

我有两个角度给我;一个开始一个和结束一个。 我也在循环与指定数量的循环。分裂两个度数值之间的角度

我想分开一个角度,所以在每个循环迭代我创建的东西在那个角度。

使用3个粒子作为例子

这里是代码(在循环内,度是90〜180)

for (int i = 0; i < numberOfParticles(3); i++) 
{ 
    float percentage = 1f/numberOfParticles; 
    percentage *= index; 
    float angle = startingAngle + ((endingAngle - startingAngle) * percentage); 
} 

我的问题是此生产:(而不是90(0) ,135(0.5),180(1))

Log: 90.0 | percentage: 0.0 
Log: 120.0 | percentage: 0.33333334 
Log: 149.99998 | percentage: 0.6666667 

我将如何得到这个与任意数量(包括7个工作?)

回答

1

你有一个错误的错误。如果你有3个颗粒,你要开始为0%,再加入50%的2倍,而不是3

float percentage = 1f/(numberOfParticles - 1); 

请确保您还处理边缘情况下numberOfParticles是1.你不要除以零。

+0

我发现这个问题,当我使用1f到360f它使最后一个粒子与第一个相同。 – 2014-11-21 04:35:56