javascript - 如何找出最接近的坐标?
问题描述
我想知道如何将我的坐标计算为一组坐标并找出最接近的坐标?
让我们说:
var player = {
x: 10,
y: 20
}
var box = [
{x: 17, y: 30},
{x: 41, y: 14},
{x: 20, y: 30}
];
所以我的播放器停留在 10、20。而且我有 3 个不同的盒装,我需要找出哪个最接近。有没有简单的计算方法?
解决方案
您可以通过检查每个距离来计算距离并减少数组并返回最短的对象。
function getDistance(p1, p2) {
return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2))
}
var player = { x: 10, y: 20 },
box = [{ x: 17, y: 30 }, { x: 41, y: 14 }, { x: 20, y: 30 }];
console.log(box.reduce((a, b) => getDistance(a, player) < getDistance(b, player) ? a : b));
推荐阅读
- oracle - 如何在 18c XE docker 镜像模板中将初始兼容设置为低于 18
- rundeck - Rundeck 作业参考 - 使用变量作为作业名称
- vue.js - v-for 带条件元素,不带
- .net - 为什么我无法从 SQL 查询中获取价值?
- reverse-proxy - FusionAuth 重定向 url IIS 反向代理问题
- oracle - 如何在Oracle中列出所有标记为角色的对象
- kubernetes - Logstash 中的“预期的#, =>”是什么意思?
- java - ClipboardManager.getText() 是否有替代方案(已折旧)?
- python - 在保存的模型上进行 TensorFlow 训练
- javascript - javascript, faceapi.js 改变文本,基于面部表情(快乐、悲伤、愤怒等)