performance - 三角函数的效率/速度

标签 performance geometry

在我正在制作的游戏中,我有两个点,pt1 和 pt2,我想计算出它们之间的角度。我已经在较早的计算中计算出距离。显而易见的方法是对垂直距离上的水平距离进行反正切 (tan(theta) = opp/adj)。

我想知道,因为我已经计算了距离,使用带有距离和 dx 或 dy 的反正弦/反余弦会更​​快吗?

另外,我最好在表格中预先计算吗?

最佳答案

除了所有关于过早优化的明智评论,让我们假设这是热点并做一个 frigg'n benchmark :

bar char

时间以纳秒为单位,缩放以标准化系统之间的“acos”。
'acos' 只是假设单位半径,即 acos(adj) , 而 'acos+div' 表示 acos(adj/hyp) .

系统 1 是运行 Mac OS X 10.6.4 (gcc 4.2.1) 的 2.4GHz i5
系统 2 是运行 Red Hat 7 Linux 2.6.28 (gcc 4.1.2) 的 2.83GHz Core2 Quad
系统 3 是运行 Ubuntu 10.04 2.6.32 (gcc 4.4.3) 的 1.66GHz Atom N280
系统 4 是运行 Ubuntu 10.04 2.6.32 (gcc 4.4.3) 的 2.40GHz Pentium 4

总结:相对性能无处不在。有时 atan2 更快,有时更慢。非常奇怪的是,在某些系统上,使用除法执行 acos 比没有执行更快。在您自己的系统上测试:-/

关于performance - 三角函数的效率/速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/769836/

相关文章:

python - 连接 2 个不相交的非凸多边形

geometry - 船体和箱体之间的最近距离

java - 判断矩形是否重叠

angularjs - 插值 {{}} 和 [innerText] 之间的性能差异 - Angular 2

python - Python中的高效内存

database - 根据 CAP 定理,memcached 属于哪一类?

android - 位图创建和绘制速度慢...但快

performance - 了解分支预测效率

OpenGL GL_SELECT 或手动碰撞检测?

python - 通过算法生成 STL(3-D 几何文件)的最佳工具?