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

Tha*_*yen 2 javascript html5 svg

我有两点是p1p2.

如何从p1p2定长度获得位置?

var p1 = {x: 100, y: 400};
var p2 = {x: 300, y: 500};
var len = 40;
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

lex*_*x82 11

您可以使用毕达哥拉斯定理计算两点之间的距离:

var xDist = p2.x - p1.x;
var yDist = p2.y - p1.y;
var dist = Math.sqrt(xDist * xDist + yDist * yDist);
Run Code Online (Sandbox Code Playgroud)

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

var fractionOfTotal = len / dist;
Run Code Online (Sandbox Code Playgroud)

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

var p = {
   x: p1.x + xDist * fractionOfTotal,
   y: p1.y + yDist * fractionOfTotal
}
Run Code Online (Sandbox Code Playgroud)

所以我们说len占总距离的20%.然后你添加20%的x距离p1.x和20%的y距离p1.y.