Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
使用 DirectX 矢量幅度数学函数与以下代码有很大区别吗?
float hyp = sqrt(pow(globalVector.x, 2) + pow(globalVector.y, 2))
不够你关心。
我建议对您发布的功能进行一些改进。
无需调用power函数;x*x并且y*y会一样好,更便宜。
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); }