码迷,mamicode.com
首页 > 其他好文 > 详细

线段相交(快速排斥实验 + 跨立实验)

时间:2017-05-19 20:22:34      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:strong   技术   ade   ima   lock   技术分享   判断   相交   分享   

Description

给定线段P1P2(P1和P2是线段的两端点,且不重合)、P3P4(P3和P4是线段的两端点,且不重合),判断P1P2和P3P4是否相交。P1P2和P3P4相交,即指存在一个点P,它既落在P1P2上又落在P3P4上(含线段的端点)。

Input

输入数据有多组,第一行为测试数据的组数N,下面包括2N行,每组测试数据含2行,第一行为P1P2的坐标值,第二行为P3P4的坐标值,比如下面的数据 表示P1、P2、P3、P4的坐标分别为:P1(0,0),P2(1,1),P3(2,2),P4(3,3)

Output

判断每组数据中的线段P1P2和P3P4是否相交,如果相交输出YES,否则输出NO。每组数据输出占一行。

Sample Input

20 0 1 12 2 3 30 0 2 00 0 1 3

Sample Output

NOYES

Hint

两线段相交分为“规范相交”和“非规范相交”。 “规范相交”指的是两条线段恰有唯一一个不是端点的公共点;而如果一条线段的一个端点在另一条线段上,或者两条线段部分重合,则视为“非规范相交”,本题是“非规范相交”。

定义点坐标类型时需用double

Solve:

先快速排斥实验,然后跨立实验,跨立实验就是判断是否有两个点在一条线段两段,这个叉积判断下就好了

技术分享

技术分享

两个跨立基本就是长这样

线段相交(快速排斥实验 + 跨立实验)

标签:strong   技术   ade   ima   lock   技术分享   判断   相交   分享   

原文地址:http://www.cnblogs.com/jianglingxin/p/6880024.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!