为了找到两点之间的距离,我们使用毕达哥拉斯来获得两点之间向量分量的平方和的平方根。
var v1 = {x : 10, y :5}; var v2 = {x : 20, y : 10}; var x =v2.x- v1.x; var y =v2.y- v1.y; var distance = Math.sqrt(x * x + y * y); // 11.180339887498949
随着ECMAScript 6的出现Math.hypot,它具有相同的功能
var v1 = {x : 10, y :5}; var v2 = {x : 20, y : 10}; var x =v2.x- v1.x; var y =v2.y- v1.y; var distance = Math.hypot(x,y); // 11.180339887498949
现在,您不必持有临时变量即可停止代码变成乱七八糟的变量
var v1 = {x : 10, y :5}; var v2 = {x : 20, y : 10}; var distance = Math.hypot(v2.x - v1.x,v2.y- v1.y); // 11.180339887498949
Math.hypot 可以采用任意数量的尺寸
// 在3D中查找距离 var v1 = {x : 10, y : 5, z : 7}; var v2 = {x : 20, y : 10, z : 16}; var dist = Math.hypot(v2.x - v1.x,v2.y- v1.y,v2.z- v1.z); // 14.352700094407325 // 找到第11维矢量的长度 var v = [1,3,2,6,1,7,3,7,5,3,1]; var i = 0; dist = Math.hypot(v[i++],v[i++],v[i++],v[i++],v[i++],v[i++],v[i++],v[i++],v[i++],v[i++],v[i++]);