如何在Javascript中获取最近的实体
How can I get the nearest entity in Javascript?
我有:
array = [{
'id': <an id like -45283etc>,
'x': 7,
'y': 10,
'z': 5
},
{
'id': <random id, too>,
'x': 19,
'y': 6,
'z': 4
},
{
'id': <random id, too>,
'x': 2,
'y': -7,
'z': -5
}
]
array[0]是玩家
我如何知道实体(数组[1]或数组[2])中哪一个最接近数组[0]?
for(var closest = 1, var i = 1; i < array.length; i++){
if(array[i] is closer to player than closest){
var closest = array[i]
}
}
return array[i]
我必须在if语句中写些什么?
假设您想将它们视为点,并且"最接近"是指使用L2范数(欧几里得距离),则可以使用:
var minDistanceSquared = Infinity;
for(var closest = 1, i = 1; i < array.length; i++){
var distanceSquared = Math.abs(
Math.pow( array[i].x - array[0].x, 2 ) +
Math.pow( array[i].y - array[0].y, 2 ) +
Math.pow( array[i].z - array[0].z, 2 )
);
if ( distanceSquared < minDistanceSquared ) {
closest = i;
minDistanceSquared = distanceSquared;
}
}
这是基于问题中的伪代码循环,并依赖于位于索引0
的播放器。
相关文章:
- jQuery最近父级的数据属性选择器
- 在IE9中的输入字段中输入焦点最近按钮
- 在我的网站上显示最近提交的文章/图片
- 如何提取“;href"最近列表项中的属性值
- 微风得到的是实体而不是对象的集合
- 在angularjs/google地图中显示分支最近的路线
- 有没有一种方法可以在没有文档或jQuery的情况下使用javascript解码html实体
- Box2D多个实体的一个夹具
- 在MSCRM 2015中使用javascript限制多实体查找
- 有更好的方法吗?(递归解析HTML unicode实体)
- 对象数组返回自最近日期以来的最高总体值
- 如何使用angularJS从json的对象数组中显示和计数实体
- 将文档实体传递给JavaScript函数
- fullpage.js和物化.js;使用实体侧导航禁用鼠标滚动
- javascript将html实体条目发布后的下一个字母大写
- 在谷歌地图上查找最近的大头针
- 多选获取最近选择的选项值
- Rally App SDK 1.32:在最近的重组后,选择器无法使用通用查询访问PortfolioItems
- 如何转义字符串中的html实体
- 如何在Javascript中获取最近的实体