• js 求点到直线的距离(由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上传文件大小修改
    flex布局
    restful
    mysql之windows忘记密码
    mysql常用命令
    比较级浅析1
    一般副词的位子
    still讲解
    英语学习法
    as的如下用法
  • 原文地址:https://www.cnblogs.com/luoeeyang/p/5772974.html
Copyright © 2020-2023  润新知