2D画面中求两点之间的距离
在2D画面中,每个坐标点由X轴和Y轴组成。因此分为3种情况:
- 水平距离:Y轴坐标相同,X坐标不同。
- 垂直距离:X轴坐标相同,Y坐标不同。
- 斜线距离:X轴和Y轴坐标均不同。
可通过直角三角形勾股定理来计算得出结果,即a²+b²=c²。可推出长度²= (X1-X2)²+(Y1-Y2)²。
首先定义Point构造器(函数)和Line构造器。
function Point(x, y) {
this.x = x; // x轴坐标
this.y = y; // y轴坐标
}
function Line(p1, p2) {
this.p1 = p1; // 点1
this.p2 = p2; // 点2
this.length = Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2)); // 两点间的长度:x坐标距离的平方+y坐标距离的平方,后求平方根
}
水平距离
水平距离是Y轴坐标相同,X坐标不同。假设A点坐标为{x:5, y:10},B点坐标为{x:15, y:10},那么计算结果(5-15)² + (10-10)²=100,然后再求平方根,最终结果为10。
var p1 = new Point(5, 10);
var p2 = new Point(15, 10);
var l = new Line(p1, p2);
console.log(l.length);
垂直距离
垂直距离是X轴坐标相同,Y坐标不同。假设A点坐标为{x:5, y:40},B点坐标为{x:5, y:10},那么计算结果(5-5)² + (40-10)²=900,然后再求平方根,最终结果为30。
var p1 = new Point(5, 40);
var p2 = new Point(5, 10);
var l = new Line(p1, p2);
console.log(l.length);
斜线距离
斜线距离是X轴和Y轴坐标均不同。假设A点坐标为{x:10, y:30},B点坐标为{x:25, y:10},那么计算结果(10-25)² + (30-10)²=625,然后再求平方根,最终结果为25。
var p1 = new Point(10, 30);
var p2 = new Point(25, 10);
var l = new Line(p1, p2);
console.log(l.length);