亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

poj 1410 Intersection 線段相交判斷

系統 1668 0

http://poj.org/problem?id=1410

???? 給定一個矩形和一條線段,求線段能否交矩形,線段與矩形的邊或矩形內部有交點即為交。

??? 很簡單的一道判斷線段相交的題目,不過要正確理解題目意思:相交要包括矩形的內部,即線段在矩形內部也是True。(The rectangle consists of four straight lines and the area in between.)題目說的左上、右下并非座標中的位置,數據給的點也會是左下、右上!!!(The terms top left and bottom right do not imply any ordering of coordinates. )

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
using namespace std;
struct point
{
?double x,y;
}p[10];
double multi(point p0,point p1,point p2)
{
?return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);
}
bool is(point s1,point e1,point s2,point e2)
{
?return (max(s1.x,e1.x)>=min(s2.x,e2.x))&&
???(max(s2.x,e2.x)>=min(s1.x,e1.x))&&
???(max(s1.y,e1.y)>=min(s2.y,e2.y))&&
???(max(s2.y,e2.y)>=min(s1.y,e1.y))&&
???(multi(s1,s2,e1)*multi(s1,e1,e2)>=0)&&
???(multi(s2,s1,e2)*multi(s2,e2,e1)>=0);
}
int main()
{
?int cas,i,flag;
?double maxx,maxy,minx,miny;
?scanf("%d",&cas);
?while(cas--)
?{
??for(i=0;i<4;i++)
??scanf("%lf%lf",&p[i].x,&p[i].y);
??p[4].x=p[3].x;
??p[4].y=p[2].y;
??p[5].x=p[2].x;
??p[5].y=p[3].y;
??flag=1;
??if(is(p[0],p[1],p[2],p[5])||is(p[0],p[1],p[5],p[3])||is(p[0],p[1],p[3],p[4])||is(p[0],p[1],p[4],p[2]))
??flag=0;
??maxx=max(p[2].x,p[3].x);
??maxy=max(p[2].y,p[3].y);
??minx=min(p[2].x,p[3].x);
??miny=min(p[2].y,p[3].y);
??if(p[0].x>=minx&&p[0].x<=maxx&&p[0].y>=miny&&p[0].y<=maxy)
??flag=0;
??if(flag)
??cout<<"F"<<endl;
??else
??cout<<"T"<<endl;
?}?
?return 0;
}
??測試數據:

???

68
4 9 11 2 1 1 7 5
11 2 4 9 1 1 7 5
12 12 24 24 19 5 25 17
4 6 15 9 1 1 11 11
19 5 25 17 12 12 24 24
0 18 8 12 1 1 11 11
2 4 4 2 1 1 11 11
-4 9 -11 2 -1 1 -7 5
-11 2 -4 9 -1 1 -7 5
-12 12 -24 24 -19 5 -25 17
-4 6 -15 9 -1 1 -11 11
-19 5 -25 17 -12 12 -24 24
0 18 -8 12 -1 1 -11 11
-2 4 -4 2 -1 1 -11 11
4 -9 11 -2 1 -1 7 -5
11 -2 4 -9 1 -1 7 -5
12 -12 24 -24 19 -5 25 -17
4 -6 15 -9 1 -1 11 -11
19 -5 25 -17 12 -12 24 -24
0 -18 8 -12 1 -1 11 -11
2 -4 4 -2 1 -1 11 -11
-4 -9 -11 -2 -1 -1 -7 -5
-11 -2 -4 -9 -1 -1 -7 -5
-12 -12 -24 -24 -19 -5 -25 -17
-4 -6 -15 -9 -1 -1 -11 -11
-19 -5 -25 -17 -12 -12 -24 -24
0 -18 -8 -12 -1 -1 -11 -11
-2 -4 -4 -2 -1 -1 -11 -11
9 1 9 2 4 3 9 6
9 2 9 1 4 3 9 6
10 3 13 3 4 3 9 6
13 3 10 3 4 3 9 6
10 6 14 6 4 3 9 6
14 6 10 6 4 3 9 6
9 7 9 10 4 3 9 6
9 10 9 7 4 3 9 6
4 7 4 10 4 3 9 6
4 10 4 7 4 3 9 6
0 6 3 6 4 3 9 6
3 6 0 6 4 3 9 6
1 3 3 3 4 3 9 6
3 3 1 3 4 3 9 6
4 0 4 2 4 3 9 6
4 2 4 0 4 3 9 6
5 3 8 5 4 3 9 6
8 5 5 3 4 3 9 6
5 3 8 3 4 3 9 6
8 3 5 3 4 3 9 6
6 4 6 5 4 3 9 6
6 5 6 4 4 3 9 6
4 3 9 6 4 3 9 6
9 6 4 3 4 3 9 6
4 3 5 4 4 3 9 6
5 4 4 3 4 3 9 6
5 3 8 3 4 3 9 6
8 3 5 3 4 3 9 6
5 3 9 3 4 3 9 6
9 3 5 3 4 3 9 6
4 4 4 5 4 3 9 6
4 5 4 4 4 3 9 6
4 3 4 5 4 3 9 6
4 5 4 3 4 3 9 6
4 3 4 6 4 3 9 6
4 6 4 3 4 3 9 6
9 2 9 5 4 3 9 6
9 5 9 2 4 3 9 6
9 2 9 7 4 3 9 6
9 7 9 2 4 3 9 6

?

out

?

F
F
F
T
T
F
T
F
F
F
T
T
F
T
F
F
F
T
T
F
T
F
F
F
T
T
F
T
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T
T

???
???
??
??

poj 1410 Intersection 線段相交判斷


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲免费在线播放 | se01国产短视频在线观看 | 国产成人禁片在线观看 | 一区二区视频在线播放 | 婷婷六月激情在线综合激情 | 日本特级黄毛片毛片视频 | 国产高清在线精品一区免费97 | 毛片在线观看网站 | 欧美aaaa黄色一级毛片 | 免费观看毛片视频 | 四虎地址| 国产产一区二区三区久久毛片国语 | 久久99精品久久久久子伦 | 在线播放精品一区二区啪视频 | 一级毛片真人不卡免费播 | 国产成人一区二区三区视频免费 | 中文字幕精品亚洲无线码二区 | 精品国产看高清国产毛片 | 精品成人在线观看 | 日本一级毛片片免费观看 | 中文字幕在线观看一区二区三区 | 亚州在线视频 | 亚洲综合精品香蕉久久网97 | a视频在线观看 | 久久精品观看 | riav久久中文一区二区 | 狠狠影视 | 九七影院97影院理论片 | 91亚洲精品久久91综合 | 日韩欧美影视 | 深夜免费福利 | 久久福利资源网站免费看 | 伊人2233| 国产亚洲欧美在线视频 | 欧美成人亚洲国产精品 | 曰本人一级毛片免费完整视频 | 九九热观看视频 | 在线亚洲精品国产成人二区 | 日日嗷| 999精品视频在线观看 | 天海冀一二三区 |