首页 > 其他 > 详细

判断两个线段是否交叉

时间:2020-03-31 14:24:42      阅读:122      评论:0      收藏:0      [点我收藏+]

这里讨论交叉的情况,交叉不是相交。

本文完全参考自:https://www.cnblogs.com/tuyang1129/p/9390376.html 若有得罪之处请多多包涵,此处仅为知识笔记

向量叉乘(行列式计算):向量a(x1,y1),向量b(x2,y2)的叉乘结果是:x1*y2-x2*y1

如果结果为正 说明a在b的顺时针方向。反之..反之..

 

假设有两条线段AB,CD,若AB,CD相交,我们可以确定:

1.线段AB与CD所在的直线相交,即点A和点B分别在直线CD的两边;

2.线段CD与AB所在的直线相交,即点C和点D分别在直线AB的两边;

上面两个条件同时满足是两线段相交的充要条件,所以我们只需要证明点A和点B分别在直线CD的两边,点C和点D分别在直线AB的两边,这样便可以证明线段AB与CD相交了。

 

如果线段CD的两个端点C和D,与另一条线段的一个端点(A或B,只能是其中一个)连成的向量,与向量AB做叉乘,若结果异号,表示C和D分别在直线AB的两边,若结果同号,则表示CD两点都在AB的一边,则肯定不相交。

当然,不能只证明C,D在直线AB的两边,还要用相同的方法证明A,B在直线CD的两边,两者同时满足才是线段相交的充要条件。

 

判断两个线段是否交叉

原文:https://www.cnblogs.com/qiandaohu27/p/12604790.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!