来源:未知 时间: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