首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较角度和角度范围

比较角度和角度范围
EN

Stack Overflow用户
提问于 2017-05-23 20:35:48
回答 2查看 454关注 0票数 1

我很难找到一种很好的方法来找出轴承是否在这个范围内。

我有一个名为$bearing的变量,这需要与$CompareAngel +-20 degrees进行比较。

例如,$CompareAngle可以是90度,那么下面的代码在$bearing值为70-110度时应该是正确的。

代码语言:javascript
复制
if($bearing >= $CompareAngle-20 && $bearing <= $CompareAngle+20)

只要$CompareAngle不接近360/0点,它就能正常工作。

也就是说,如果$CompareAngle是10度的话,范围应该是350到30度.

但是如果我把它放在上面的话,它就不能工作了,因为它会变成-10-30。

我可以做if($CompareAngle-20 <0){ do this if()} else{ other if }

但是,是否有一种很好的方法来比较这样的角度/方位而没有一堆if,或者这是不可能的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-23 20:38:43

这似乎是一个模运算符会解决的问题。

if($bearing % 360 >= ($CompareAngle % 360)-20 % 360 && $bearing <= ($CompareAngle % 360) +20

模360 (除以360后的余数)所做的基本工作是,给定一个值$bearing$,尽可能多地减去360乘以$bearing > 0

票数 2
EN

Stack Overflow用户

发布于 2017-05-23 21:46:12

你可以算出实际的差额。

代码语言:javascript
复制
$diff = abs($bearing - $CompareAngle);

然后检查它是否在你可以接受的范围内。

代码语言:javascript
复制
if ($diff <= 20 || $diff >= 340 )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44144523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档