网站地图    收藏   

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

js判断点p在线line的左边、右边

来源:未知    时间:2023-02-20 16:42 作者:小飞侠 阅读:

[导读] js判断点p在线line的左边、右边, 两点p1(x1,y1),p2(x2,y2),判断点p(x,y)在线的左边还是右边,下面给出三种解决方案. 方法1. boolLeftOfLine(constZCoord2Dp,constZCoord2p1,constZCoord2Dp2){doubletmpx=(p1.x-p2.x)/(p1...

js判断点p在线line的左边、右边, 两点p1(x1,y1),p2(x2,y2),判断点p(x,y)在线的左边还是右边,下面给出三种解决方案.


方法1.

bool LeftOfLine(const ZCoord2D& p, const ZCoord2& p1, const ZCoord2D& p2)
{
    double tmpx = (p1.x - p2.x) / (p1.y - p2.y) * (p.y - p2.y) + p2.x;
    if (tmpx > p.x)//当tmpx>p.x的时候,说明点在线的左边,小于在右边,等于则在线上。
        return true;
        return false;
}


方法2.

另外一种方法:
Tmp = (y1 – y2) * x + (x2 – x1) * y + x1 * y2 – x2 * y1
Tmp > 0 在左侧
Tmp = 0 在线上
Tmp < 0 在右侧


方法3.

设线段端点为从 A(x1, y1)到 B(x2, y2), 线外一点 P(x0,y0),
判断该点位于有向线 A→B 的那一侧。 
a = ( x2-x1, y2-y1) 
b = (x0-x1, y0-y1) 
a x b = | a | | b | sinφ (φ为两向量的夹角) 
| a | | b |  ≠ 0 时,  a x b  决定点 P的位置 
所以  a x b  的 z 方向大小决定 P位置 
(x2-x1)(y0-y1) – (y2-y1)(x0-x1)  >  0   左侧 
(x2-x1)(y0-y1) – (y2-y1)(x0-x1)  <  0   右侧 
(x2-x1)(y0-y1) – (y2-y1)(x0-x1)  =  0   线段上


以上就是js判断点p在线line的左边、右边全部内容,感谢大家支持自学php网。

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

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

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

添加评论