java - 三角学和角度收敛

标签 java scala trigonometry angle

这是我的问题:

2 个角度,表示为 0 到 360 之间的整数(如果需要,则为 359) 1个从0到1的双倍,代表收敛速度。

我需要编写一个函数,以等于收敛速度的因子将角度拉近。

例如,如果我的会聚率为 0.5 和两个角度:80° 和 40°,则输出应该是一对角度 70° 和 50°(这样它们就位于 60° 会聚角的中间) )。对于这种配置,这是相当明显的,但我很难在一般情况下解决这个问题,因为我在三角学方面非常糟糕,并且在我的职业生涯中从未与角度一起工作过,所以我没有经验。因此,这个函数需要处理任何角度配置,并且会出现问题,因为例如,如果差值 >180,我需要反转运算,因为角度表示为整数,并且我必须使用求和和减法

我需要在 Scala 中实现它,但请随意用 Java、伪代码或任何其他流行语言编写您的建议,我希望将您的代码转换为 Scala 时不会出现问题。

解决方案越轻越好。

最佳答案

原始角度 = o1 o2。

差异 D= o2-o1(注意这是正数,假设 o1 < o2)

中角M= o1 + (D/2)

收敛因子 = F

新角度 = M +- (D/2)*F

如果我是正确的,这就是所需要的。因为角度始终在 0-360 之间,并且假设您只需逆时针方向即可找到中间值和所有值。

关于java - 三角学和角度收敛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16190008/

相关文章:

scala - sbt无法解决依赖关系

JavaScript 余弦相似度函数

java - 使用 Java 8 Stream 对 HashMap String 值进行排序不起作用

java - 如何使 Swing 文本区域在加载后立即获得焦点?

java - 在 Spring 配置文件中加密密码

java - 谁能解释 servlet 映射?

scala - PartialFunctions 与 orElse 组合的 MatchError

scalaz - 函数组合 - WriterT

C++ sin不返回正确的值

javascript - 跟随时使 Canvas 图像指向鼠标