java - 分割两个角度值之间的角度

标签 java math

我有两个角度;一个开始和一个结束。 我也处于具有指定循环次数的循环中。

我正在尝试分割一个角度,因此在每次循环迭代时我都会以该角度创建一些东西。

以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?)

最佳答案

您遇到了相差一错误。如果您有 3 个粒子,则将从 0% 开始,然后添加 50% 2 次,而不是 3 次。

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

确保您还处理了 numberOfParticles 为 1 的边缘情况。您不想除以零。

关于java - 分割两个角度值之间的角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27053599/

相关文章:

java - 我应该如何存储非常大的数据类型

java - 有人可以解释为什么这个坐标数学有效吗?

javascript - 在 javascript 中,如何在循环中有效地处理大数?

c# - 如何让一个物体精确定位并减速到指定位置停止?

c++ - 选择哪个数学库来转换 LabView 模块

algorithm - 汽车停在无限的街道上 : find car and compute the complexity

java - 文本文件比较

java - 通过来自另一个包的公共(public)子类使用包私有(private)类的公共(public)方法引用时出现 IllegalAccessError

java - 验证电子邮件地址后如何进行 while 循环?

java - 向另一台设备发送通知