javascript - 按给定长度获得两点之间的位置

时间:2015-12-19 16:20:02

标签: javascript html5 svg

我有两个点p1p2

如何从p1p2获得给定长度的排名?

var p1 = {x: 100, y: 400};
var p2 = {x: 300, y: 500};
var len = 40;

enter image description here

1 个答案:

答案 0 :(得分:10)

您可以使用Pythagoras's theorem计算两点之间的距离:

var xDist = p2.x - p1.x;
var yDist = p2.y - p1.y;
var dist = Math.sqrt(xDist * xDist + yDist * yDist);

然后计算长度所涵盖的总距离的分数:

var fractionOfTotal = len / dist;

最后,你得到了这样的观点:

var p = {
   x: p1.x + xDist * fractionOfTotal,
   y: p1.y + yDist * fractionOfTotal
}

所以让我们说len占总距离的20%。然后将x距离的20%添加到p1.x,将y距离的20%添加到p1.y