javascript - 从特定点计算最近的点

标签 javascript css math

我创建了一个全景图,中间有一个指南针,最初指南针指向图像的顶部中心。

现在我想相对于这一点移动指南针,因为它是 360 度全景图,它会创建一个相邻的副本。所以我想要的是将指南针指向您从左到右或从右到左移动时距离较近的那个点。

这是我到目前为止所做的,这并不像我想要的那样。

diagram of 1st solution

所以这里是代码:https://gist.github.com/joeyhipolito/8678bf35dba7795de4d5

我所做的是创建了两个点:

points.push({
  x: target.offset().left + (windowWidth) / 2,
  y: target.offset().top
});

points.push({
  x: (target.offset().left + (windowWidth) / 2) + (common.width / 2),
  y: target.offset().top
});

然后尝试通过勾股定理计算哪些点更接近引用

var closestPoint = points[0];
var closestValue = Math.sqrt(Math.pow(points[0].x, 2) + Math.pow(points[0].y, 2));

for (var i = 1; i >= points.length; i++) {
  var z = Math.sqrt(Math.pow(points[i].x, 2) + Math.pow(points[i].y, 2));
  if(z < closestValue) {
    closestPoint = points[i];
    closestValue = z;
  }
};

你认为我错过了什么?

最佳答案

您似乎对 for 循环的控制有问题。这个循环:

for (var i = 1; i >= points.length; i++) {
};

(注意退出条件)不会运行,因为 1(i 的初始值)紧挨着数组的长度,大概至少为 2。另一方面,如果数组length 最多为 1,则此循环将永远不会终止,因为 i 将不断增加,并且 i>=length 语句保持为真。

您可能想将该退出条件更改为 i<=length,那么最小值查找逻辑应该没问题。

关于javascript - 从特定点计算最近的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29025662/

相关文章:

javascript - Contenteditable 也删除和编辑字段中的图标

javascript - 在 Three.js 中,当用户拖动鼠标时如何获得正确的坐标

javascript - 在 jQuery 中使用 addClass 更改背景颜色

algorithm - 计算最终市场分布——竞争性编程

python - 计算 Gamma(x+1/2)/Gamma(x)

javascript - Nativescript:用黑色空间代替照片缩略图

javascript - ReactJs:使用 Prop 和列表进行样式设置

javascript - 将下拉列表 ul 列表在下拉导航顶部的相同高度对齐

JavaScript 没有触发语法错误?

c - 找出第二大数