0

使用 DirectX 矢量幅度数学函数与以下代码有很大区别吗?

float hyp = sqrt(pow(globalVector.x, 2) + pow(globalVector.y, 2))
4

1 回答 1

2

不够你关心。

我建议对您发布的功能进行一些改进。

无需调用power函数;x*x并且y*y会一样好,更便宜。

我会通过缩放来防止四舍五入,就像这个伪代码:

if (abs(x) > abs(y)) {
   r = abs(y/x);
   hyp = x*sqrt(1 + r*r);
} else {
    r = abs(x/y);
    hyp = y*sqrt(1 + r*r);
}
于 2012-02-24T15:16:55.497 回答