js 求点到直线的距离(由2点确定的直线,求到第三点的距离,交点坐标)
生活随笔
收集整理的這篇文章主要介紹了
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 在右側
總結
以上是生活随笔為你收集整理的js 求点到直线的距离(由2点确定的直线,求到第三点的距离,交点坐标)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android8.1新功能,Androi
- 下一篇: android开发出现的错误,andro