德萊聯盟(判斷兩點是否相交 nyist)

2021-06-27 01:34:45 字數 1060 閱讀 2408

描述

歡迎來到德萊聯盟。。。。

德萊文。。。

德萊文在逃跑,卡茲克在追。。。。

我們知道德萊文的起點和終點座標,我們也知道卡茲克的起點和中點座標,問:卡茲克有可能和德萊文相遇嗎?,並且保證他們走的都是直線。

輸入

幾組資料,乙個整數t表示t組資料

每組資料 8個實數,分別表示德萊文的起點和終點座標,以及卡茲克的起點和終點座標

輸出如果可能 輸出 interseetion,否則輸出 not interseetion

樣例輸入

2

-19.74 7.14 22.23 -27.45 -38.79 -5.08 47.51 34.01

-8.61 9.91 -32.47 6.47 -3.81 -16.1 7.82 -6.37

樣例輸出

interseetion

not interseetion

思路 根據叉乘 直線ab 直線cd  如果c d點在ab線段的兩邊 ,則ac向量與ad向量在ab向量的順時針逆時針方向(或者 逆時針 順時針方向)

即根據叉乘性質可ac

**:#include#includeusing namespace std;

struct node st1,ed1,st2,ed2;

double area(node ss1,node ee1,node ss2)

int main()

{ int t,i,j;

cin>>t;

while(t--)

{cin>>st1.x>>st1.y>>ed1.x>>ed1.y>>st2.x>>st2.y>>ed2.x>>ed2.y;

double s1=area(st1,ed1,st2);

double s2=area(st1,ed1,ed2);

double s3=area(st2,ed2,st1);

double s4=area(st2,ed2,ed1);

if(s1*s2<=0&&s3*s4<=0)

cout<<"interseetion"<

德萊聯盟(判斷線段是否相交)

時間限制 1000 ms 記憶體限制 65535 kb 難度 1 描述 歡迎來到德萊聯盟。德萊文。德萊文在逃跑,卡茲克在追。我們知道德萊文的起點和終點座標,我們也知道卡茲克的起點和中點座標,問 卡茲克有可能和德萊文相遇嗎?並且保證他們走的都是直線。輸入 幾組資料,乙個整數t表示t組資料 每組資料 8...

德萊聯盟 判斷線段相交

時間限制 1000 ms 記憶體限制 65535 kb 難度 1 描述 歡迎來到德萊聯盟。德萊文。德萊文在逃跑,卡茲克在追。我們知道德萊文的起點和終點座標,我們也知道卡茲克的起點和中點座標,問 卡茲克有可能和德萊文相遇嗎?並且保證他們走的都是直線。輸入 幾組資料,乙個整數t表示t組資料 每組資料 8...

判斷兩矩形是否相交

判斷兩矩形是否相交,因若矩形相交時,在x軸方向和y軸方向必然存在重疊的部分,因此可將其轉化為兩條直線是否重疊的問題上。假設矩形的表示方法為 class rectangle x,y為矩形的位置點,width表示長,height表示寬。width與height可為正負數。width 0,height 0...