51nod 1264 線段相交(計算幾何)

2021-08-04 23:36:58 字數 983 閱讀 9477

#include 

#include

#include

#include

using

namespace

std;

/*計算幾何

輸入兩條線段的四個端點,判斷兩直線是否相交

*/const

double esp=1e-7;

int sgn(double x)

struct point

point(double _x,double _y)

point operator -(const point &b) const

double

operator ^ (const point &b) const

//叉積

double

operator * (const point &b) const

//點積

double distance(point p)//兩點距離

};struct line

line(point _s,point _e)

double length()//線段長度

double dispointtoline(point p)//點到直線距離

double dispointtoseg(point p)//點到線段距離

//兩線段相交判斷

//2 規範相交 1 非規範相交 0 不相交

int segcrossseg(line v)

};int main()

line line[2];

line[0]=line(point[0],point[1]);

line[1]=line(point[2],point[3]);

int flag=line[0].segcrossseg(line[1]);

if(flag)

else

}return

0;}

51nod 1264 線段相交

題目 給出平面上兩條線段的兩個端點,判斷這兩條線段是否相交 有乙個公共點或有部分重合認為相交 如果相交,輸出 yes 否則輸出 no 這道題直接套白書裡面的模板就行 但是要注意的是因為白書給的那個模板不包含端點。所以我們這裡需要進行修改一下。包含了端點,所以自然點積就為0了。include incl...

51nod1264 線段相交

數學渣渣看了一下午各種找公式才明白 下面寫一下理解 判斷兩個線段相交與否。可以看成直線是否與線段相交 根據高數所學,向量的叉乘積,可以利用右手法則來判斷結果的方向。那麼如果兩種情況的方向乙個上,乙個下,那麼自然也就是不在直線的同側,那麼就滿足條件了。是有需要注意x,y用double型別,否則乘法會有...

51Nod 1264 線段相交

1264 線段相交 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 給出平面上兩條線段的兩個端點,判斷這兩條線段是否相交 有乙個公共點或有部分重合認為相交 如果相交,輸出 yes 否則輸出 no input 第1行 乙個數t,表示輸入的測試數量 1 t 1000 第2 t...