JS判断点是否在线段上

最近在开发gis系统,需要用到在线段上添加点的功能,线段是由很多点连接起来的,所以就要判断点在那一段线段里面,然后插入点。

点是否在线段上可以转换为三点是否共线的问题:

三点是否共线可以通过判断斜率来判断:

设有 p1,p2,q三点,判断三点是否共线:

公式:

k1 = (p2.y - p1.y)/(p2.x - p1.x)

k2 = (q.y - p1.y)/(q.x - p1.x)

如果k1 === k2就表示三点共线

但是在计算机中,点的计算是浮点型,需要设定一个阈值

这里阈值设置为0.1,可以根据实际情况进行设置

于是 (k2 - k1 - 0.1) <= EPSILON 时显然成立

 

JS代码:


test




浏览器不兼容





结果:


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部