我在某篇文章中读到,三角计算通常很昂贵.这是真的?如果是这样,那就是他们使用trig-lookup表的原因吧?
编辑:嗯,所以如果唯一改变的是度数(精确到1度),那么360条目(对于每个角度)的查找表会更快吗?
Sco*_*ith 18
昂贵是一个相对的术语.
执行速度最快的数学运算是可以由处理器直接执行的运算.当然整数加减也是其中之一.根据处理器的不同,也可能存在乘法和除法.有时,处理器(或协处理器)可以本地处理浮点运算.
更复杂的事物(例如平方根)需要执行一系列这些低级计算.这些东西通常使用数学库(在处理器可以执行的本机操作之上编写)来完成.
所有这些发生得非常快,所以"昂贵"取决于你需要做多少,以及你需要多快发生.
如果您正在编写实时3D渲染软件,那么您可能需要使用大量聪明的数学技巧和快捷方式来挤出环境中的每一点速度.
如果您正在处理典型的业务应用程序,那么您所做的数学计算可能无法显着提高系统的整体性能.
Jef*_*dge 12
在Intel x86处理器上,浮点加法或减法需要6个时钟周期,乘法需要8个时钟周期,并且需要30-44个时钟周期.但余弦需要180到280个时钟周期.
它仍然非常快,因为x86在硬件中做这些事情,但它比更基本的数学函数慢得多.
由于sin(),cos()和tan()是通过对一系列开发人员求和计算的数学函数,因此开发人员有时会使用查找表来避免昂贵的计算.
权衡取决于准确性和记忆力.对准确性的要求越高,查找表所需的内存量就越大.
请看下表精确到1度.
http://www.analyzemath.com/trigonometry/trig_1.gif