计算几何线段判交模板

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算几何线段判交模板相关的知识,希望对你有一定的参考价值。

 

 

 1 #include <cstdio>
 2 #include <iostream>
 3 using namespace std;
 4 struct P{
 5     int x,y;
 6 }a1,a2,b1,b2;
 7 int t;
 8 int direct(P a,P b,P c)
 9 {
10     return (c.x-a.x)*(b.y-a.y)-(b.x-a.x)*(c.y-a.y);
11 }
12 bool intersect(P a1,P a2,P b1,P b2)
13 {
14     if (min(a1.x,a2.x)<=max(b1.x,b2.x)&&
15         min(b1.x,b2.x)<=max(a1.x,a2.x)&&
16         min(a1.y,a2.y)<=max(b1.y,b2.y)&&
17         min(b1.y,b2.y)<=max(a1.y,a2.y)&&
18         direct(a1,a2,b1)*direct(a1,a2,b2)<=0&&
19         direct(b1,b2,a1)*direct(b1,b2,a2)<=0)
20         return 1;
21     else
22         return 0;
23 }
24 int main()
25 {
26     scanf("%d",&t);
27     while(t--)
28     {
29         scanf("%d%d%d%d",&a1.x,&a1.y,&a2.x,&a2.y);
30         scanf("%d%d%d%d",&b1.x,&b1.y,&b2.x,&b2.y);
31         if (intersect(a1,a2,b1,b2))
32             printf("intersect\n");
33         else
34             printf("not intersect\n");
35     }
36 }

 

以上是关于计算几何线段判交模板的主要内容,如果未能解决你的问题,请参考以下文章

线段判交——poj2826

计算几何模板(点+线段)1.0

TOJ 1288计算几何练习题――线段相交(模板题)

计算几何

ABC207 C - Many Segments(暴力,线段判交)

(线段判交的一些注意。。。)nyoj 1016-德莱联盟