javascript - 查找距已知点给定距离的位置

标签 javascript

在有人向我指出this question之前,我已经看到但无法阅读(我希望我能)。我正在寻找一种简单的方法(因为我不太擅长数学)或可以将其转换为 JavaScript 的人。

基本上,我想找到一个点的坐标,给定 3 个或更多点(可以是 20 个),并给定我要查找的点与给定点之间的距离。我该如何开始呢?

理想情况下,我想获得类似的东西

function getPoint(array){
    var pt = {x:0, y:0};
    //the hot stuff here that I need help with
    return pt;
}

var a = [{x:10, y:10, d:30}, {x:10, y:50, d:20} ...];
getPoint(a);

我正在考虑计算圆与圆的交点,但这会给我返回 2 分,所以我不确定我能找到哪一个。

最佳答案

这是一个我认为您可以使用的质心算法(我可能是错的!)。它会找到这些点的中心。我添加了 Canvas ,这样你就可以看到要点。红点是那些的中心(dah)。

var c = document.getElementById("c");
var context=c.getContext("2d");

var a = [{x:20, y:10, d:30}, {x:15, y:80, d:20}, {x:80, y:60, d:20}];
console.log(getPoint(a));

function getPoint(points) {

	var cx = 0, cy = 0,
		sa = 0, a, i = 1,
		len = points.length,
        pt1 = points[0], pt2;

    context.fillRect(pt1.x,pt1.y,4,4);
  
	for (; i < len; i++) {

		pt2 = points[i];

		a = pt1.x * pt2.y - pt2.x * pt1.y;
		sa += a;
		cx += (pt1.x + pt2.x) * a;
		cy += (pt1.y + pt2.y) * a;

        context.fillRect(pt1.x,pt1.y,4,4);
      
        pt1 = pt2;
	}

    context.fillRect(pt2.x,pt2.y,4,4);

	sa *= 0.5;
	cx /= (6.0 * sa);
	cy /= (6.0 * sa);

    context.fillStyle="red";
    context.fillRect(cx,cy,4,4);

	return {
		x: cx,
		y: cy
	};
};
<canvas id="c" width="100" height="100" style="border:2px solid red"></canvas>

关于javascript - 查找距已知点给定距离的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29292540/

相关文章:

javascript - 使用 FileReader api 上传二进制文件时遇到问题

javascript - Textarea 将文本拆分为行和列

javascript - Nodejs 模块 instanceof

javascript - 根据宽度计算div的高度并保持比例

javascript - 如何使用 bool 值来切换图像可见性?

javascript - Axios - 在不实际发出请求的情况下获取带有参数的 url

javascript - 多列排序 - Jqgrid

javascript - css中图像的正确重叠

javascript - AngularJS 在实时更新中将模型传递给 Controller

javascript,promises,如何在 then 范围内访问变量 this