|
|
在游戏编程大师上面说道了近似的两点距离公式.
s32 fast_distance_2d( s32 x, s32 y )
{
s32 min = x<y ? x:y;
return x + y - (min>>1) - (min>>2) + (min>>4);
}
里面说是根据麦克老林级数得到的.
麦克劳林级数我还是记得的. 但是两点距离公式是
z = sqrt(x*x + y*y);
是二元函数吧, 是如何根据麦克老林级数推倒成
return x + y - (min>>1) - (min>>2) + (min>>4);
还有, 中文版书上的麦克劳林级数好像也写错了, 每一项少了x的k次方.
这个近似方法主要是为了消除sqrt方程的调用. 你们谁有更好的方法啊?
|
|