首先我们知道一条线也是两个点相连组成的
所以这个问题需要的已知条件就应该有三个
直线的起始坐标(A)结束坐标(B)和点(P)
思路
- 首先求出点P到直线起始坐标A的长度为PA,点P到直线结束坐标B的长度为PB,直线AB的长度
- 求直线长度的公式为
Math.sqrt((P.x-A.x)**2+(P.y-A.y)**2) - 然后判断AB-(PA+PB) 是否等于0 注:数字做运算时精度会丢失
思路也有了下面我们找一道题试试
例子
如图已知点的坐标P为(4,6) 直线起始坐标A为(2,2) 结束坐标B为(6,5)
然后我们就可以将已知条件带入求直线长度的公式得出
直线P_A = 4.47213595499958
直线P_B = 2.23606797749979
直线A_B = 5
5 - (4.47213595499958+2.23606797749979) != 0
所以点P不在直线AB上
如图已知点的坐标P为(4,3.5) 直线起始坐标A为(2,2) 结束坐标B为(6,5)
然后我们就可以将已知条件带入求直线长度的公式得出
直线P_A = 2.5
直线P_B = 2.5
直线A_B = 5
5 - (2.5 + 2.5) == 0
所以点P在直线AB上
写在最后
解题有很多方法 以上只是其中一种
希望可以帮助到需要的童鞋
如果有错误的话也欢迎大家指出 一定听取建议
大佬们嘴下留情