参考资料:《ACM/ICPC程序设计与分析》
判断点在线段上这个算法非常的简单,只要学过叉乘(CrossProduct)就很容易搞定
设点为Q,线段为P1P2,判断点Q是否在P1P2上。
算法依据:
1.点Q首先要在P1P2所在的直线上。
比较原始的办法是利用P1P2的坐标做出直线方程,然后代入点Q看是否满足方程,这样代码稍微麻烦些。
简单点就是用叉乘,如果点Q在P1P2直线上,那么:
P1Q x P1P2 = 0(x代表叉乘)
这个代码实现很容易。
参考资料:《ACM/ICPC程序设计与分析》
判断点在线段上这个算法非常的简单,只要学过叉乘(CrossProduct)就很容易搞定
设点为Q,线段为P1P2,判断点Q是否在P1P2上。
算法依据:
1.点Q首先要在P1P2所在的直线上。
比较原始的办法是利用P1P2的坐标做出直线方程,然后代入点Q看是否满足方程,这样代码稍微麻烦些。
简单点就是用叉乘,如果点Q在P1P2直线上,那么:
P1Q x P1P2 = 0(x代表叉乘)
这个代码实现很容易。