📅  最后修改于: 2023-12-03 15:16:18.103000             🧑  作者: Mango
hypot()
是JavaScript的Math对象的静态方法之一,用于计算给定参数的平方和的平方根,即求解直角三角形的斜边长度。
Math.hypot(value1, value2, ..., valueN)
value1
, value2
, ..., valueN
是要计算的数字参数。hypot()
方法返回给定参数的平方和的平方根。
console.log(Math.hypot(3, 4)); // 5
console.log(Math.hypot(2, 3, 4)); // 5.385164807134504
console.log(Math.hypot(0.1, 0.2, 0.3)); // 0.37416573867739417
如果传入的参数有任何一个非数值类型,hypot()
会尝试将其转换成数值类型。如果无法转换则返回 NaN
。如果没有传入参数,则返回 0。
hypot()
方法常用于计算三维空间的长度、距离或斜弦(斜边),可以用于三维物体的旋转、缩放等变换中。
由于计算给定参数的平方和可能导致溢出,因此 hypot()
方法使用以下方法计算平方和的平方根,以避免此问题:
$$\sqrt{x_1^2 + x_2^2 + \cdots + x_n^2} =\max\Big(x_1, x_2, \cdots, x_n\Big) \cdot\sqrt {1 +\Big(\frac{x_1}{\max\Big(x_1, x_2, \cdots, x_n\Big)}\Big)^2 + \Big(\frac{x_2}{\max\Big(x_1, x_2, \cdots, x_n\Big)}\Big)^2 + \cdots + \Big(\frac{x_n}{\max\Big(x_1, x_2, \cdots, x_n\Big)}\Big)^2}$$