0
A
回答
1
为了避免问题360/0过渡,你可以使用一个条件占周期性
if (Cos(Bearing) * Cos(POI) + Sin(Bearing) * Sin(POI) > Cos(Threshold)) then
POI direction lies in range Bearing +- Threshold
0
这里是我的解决方案现在。在努力简化它。欢迎提出建议。
public static boolean isBearingWithinRange(double heading, double alertHeading, double threshold) {
boolean status = false;
double leftThresholdMin = heading - threshold;
double leftThresholdMax = FULL_CIRCLE;
double rightThresholdMin = 0.0d;
double rightThresholdMax = 0.0d;
double total = heading + threshold;
if(total > FULL_CIRCLE) {
rightThresholdMax = threshold - (FULL_CIRCLE - heading);
if((alertHeading >= leftThresholdMin && alertHeading <= leftThresholdMax) ||
(alertHeading >= rightThresholdMin && alertHeading <= rightThresholdMax)) {
status = true;
}
} else if(heading < threshold) {
double diff = (threshold - heading);
leftThresholdMin = FULL_CIRCLE - diff;
rightThresholdMax = threshold + heading;
if((alertHeading >= leftThresholdMin && alertHeading <= leftThresholdMax) ||
(alertHeading >= rightThresholdMin && alertHeading <= rightThresholdMax)) {
status = true;
}
} else {
rightThresholdMax = heading + threshold;
if(alertHeading >= leftThresholdMin && alertHeading <= rightThresholdMax) {
status = true;
}
}
return status;
}
相关问题
- 1. 速度计算范围速率和轴承速率
- 2. ZedGraphControl轴值范围
- 3. 在日期范围内计算天数?
- 4. 在另一个范围内计算范围的出现次数
- 5. 如果值在范围内则显示范围否则如果值小于或大于范围显示'$'
- 6. 如何计算IP范围
- 7. 如何计算一个范围内的平均值psql
- 8. 如何计算范围内功能的最大值?
- 9. 计算的值在Excel范围内使用
- 10. 计算相对日期范围内的值的最大值
- 11. 计算日期范围内的天数
- 12. 计算范围内的数字
- 13. Excel按日期范围计算日期范围内的不同值
- 14. 如何计算斜边和轴承
- 15. 从GPS坐标计算Esri地图范围
- 16. 熊猫在x轴范围内的boxplot
- 17. MySQL在任何范围内的第一次占用范围内计数结果
- 18. 确定范围内的组变量的阈值
- 19. 击+计算报警如果阈值是下最小
- 20. 阈值数据和计算比值比
- 21. 使用范围内的所有值计算函数?
- 22. VBA替换范围内的函数公式与其计算值
- 23. 计算特定范围内的行数,最大值后
- 24. 计算特定范围内的值的发生(Excel)(无VBA)
- 25. 更高效的查询来计算组范围内的值
- 26. 计算多个范围内重复值的百分比
- 27. 计算可互换范围内的平均值?
- 28. 阈值算法
- 29. 实体框架:如何计算其他日期范围内的日期范围
- 30. 存储器范围计算
所以你需要找到两个轴承(角度)的差异? – MBo
是的,类似的东西。我需要检查POI是否在x1,x2的范围内。 – neilQ5