- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个处理方位 Angular 操作的代码。我想区分方位 Angular 是否接近 0,100,200,300,400 或 0, PI/2, PI, PI*(3/2), 2*PI, (N, E, S, W)
。大多数情况下,我会收到一个不在此范围内的 Angular ,因此我需要最快的方法来丢弃我拥有的这些值。
我想这样做是为了控制纯水平或垂直方位 Angular 的线方程。
当然我会使用 epsilon 方法。
所以我会:
if Math.abs(azi)< 0.0000001 ...
else if Math.abs(azi-100)< 0.0000001 ...
else Math.abs(azi-200)< 0.0000001 ...
else Math.abs(azi-300)< 0.0000001 ...
else Math.abs(azi-400)< 0.0000001 ...
else other
如您所见,我必须检查 5 个条件来检查我是否具有“其他”值。
另一方面,您知道 sin(N) =0、sin(S) = 0 且 cos(E)=0 且 cos(W) =0,因此:
if Math.abs(Math.cos(azi) ) < 0.0000001 ...
else if Math.abs(Math.sin(azi) ) < 0.0000001 ...
else other
现在我有两个条件:数学三 Angular 运算和 5 个简单算术运算。正如您在 jsperf 中看到的,算术速度更快。
我的问题是:还有其他快速的方法吗?
最佳答案
我不确定模数性能与其他算术相比如何,但这样你至少可以将它放在一行中。
if ((azi + 0.0000001) % 100) < 0.0000002 ...
else other
除了潜在的舍入错误之外,这应该与您的代码执行相同的操作。
I tried it on your page而且它的执行速度似乎快了三倍。
关于javascript - 知道 Angular 是否为北、南、西或东的最快代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26155751/
我仍在为我正在尝试制作的迷宫游戏编写 Cell 类(class)。在获得不同线程的帮助后,有人建议我为我的墙壁/邻居使用 EnumMap,到目前为止效果很好。 这是我目前所拥有的: enum Dir
在 PostGIS 中,有没有办法计算 50 英里外不同方向的另一个点? 给定一个点,('New York',-74.00,40.71),我如何计算以下点? 1) 50 miles directly
我想计算正在行驶的车辆的加速度。到目前为止,我能够使用以下公式获得沿航向矢量的加速度 a = (velocity(now)-velocity(previous))/time m/s^2 示例:一辆汽车
我是一名优秀的程序员,十分优秀!