网站地图    收藏   

主页 > 前端 > js几何数学知识 >

js 求点到直线的距离(由2点确定的直线,求到第三点的距离)

来源:未知    时间:2023-01-03 14:39 作者:小飞侠 阅读:

[导读] js 求点到直线的距离(由2点确定的直线,求到第三点的距离) 需要用到2个数学公式 1,已知2点求其直线方程 2,点到直线的距离 1,Y=kX+b 分别将两点带入以上方程, 求出k 和b 例如: p0={x:?,...

js 求点到直线的距离(由2点确定的直线,求到第三点的距离)

需要用到2个数学公式 

1,已知2点求其直线方程 

2,点到直线的距离 

1,Y=kX+b 分别将两点带入以上方程,

求出k 和b 例如: p0={x:?,y:?}, p1={x:?,y:?} 

可解得方程: -((p0.y-p1.y)/(p0.x-p1.x))*x  + 1*y +   (p0.y*p1.x-p1.y*p0.x)/(p1.x-p0.x)=0 其中: k=-((p0.y-p1.y)/(p0.x-p1.x)) b=(p0.y*p1.x-p1.y*p0.x)/(p1.x-p0.x) 

2,点到直


代码如下:

var p1={x:100,y:100};//直线上的点p1
var p2={x:200,y:100};//直线上的点p2
 
var p3={x:0,y:300};//直线外的点p3
 
//---------------------------------交点坐标
function getJiaoDian()
{
    var P={};
 
    //如果p1.x==p2.x 说明是条竖着的线
    if(p1.x-p2.x==0)
    {
        P.x=p1.x;
        P.y=p3.y;
    }
    else
    {
        var A=(p1.y-p2.y)/(p1.x-p2.x)
        var B=p1.y-A*p1.x
        var m=p3.x+A*p3.y
 
        P.x=(m-A*B)/(A*A+1)
        P.y=A*P.x+B
    }
 
    return P
}
//-----------------------------------距离
function getJuLi()
{
    var len;
 
    //如果p1.x==p2.x 说明是条竖着的线
    if(p1.x-p2.x==0)
    {
        len=Math.abs(p3.x-p1.x)
    }
    else
    {
        var A=(p1.y-p2.y)/(p1.x-p2.x)
        var B=p1.y-A*p1.x
 
        len=Math.abs((A*p3.x+B-p3.y)/Math.sqrt(A*A+1))
    }
 
    return len
}
另外贴出 判断点在线的左右侧判断方法
判断点p在由p0,p1决定的直线左右侧的公式:
 
var p0={x:?,y:?},p1={x:?,y:?},p={x:?,y:?}
 
var key = (p0.y – p1.y) * x + (p1.x – p0.x) * y + p0.x * p1.y – p1.x * p0.y
key > 0 在左侧
key = 0 在线上
key < 0 在右侧


自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论