NYOJ 1016 判断两线段是否相交
2017-10-10 16:58
337 查看
#include<cstdio> #include<cmath> #include<iostream> #include<algorithm> #include<vector> #include<stack> #include<cstring> #include<queue> #include<set> #include<string> #include<map> #include <time.h> #define PI acos(-1) using namespace std; typedef long long ll; typedef double db; const int maxn = 400005+1000; const int sigma=26; const ll mod = 1000000007; const int INF = 0x3f3f3f; const db eps = 1e-9; struct point { db x, y; point(db x=0, db y=0):x(x), y(y) {} }s1, e1, s2, e2; typedef point Vector; Vector operator - (point A, point B) { return Vector(A.x-B.x, A.y-B.y); } db Cross(point A, point B) { return A.x*B.y-B.x*A.y; } void solve() { scanf("%lf%lf%lf%lf", &s1.x, &s1.y, &e1.x, &e1.y); scanf("%lf%lf%lf%lf", &s2.x, &s2.y, &e2.x, &e2.y); Vector CA=s1-s2; Vector CD=e2-s2; Vector CB=e1-s2; db s=Cross(CA, CD)*Cross(CB, CD); Vector AC=s2-s1; Vector AB=e1-s1; Vector AD=e2-s1; db ss=Cross(AC, AB)*Cross(AD, AB); // cout<<s<<" "<<ss<<endl; if (s<=0 && ss<=0) puts("Interseetion"); else puts("Not Interseetion"); } int main() { int t = 1; // freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout); scanf("%d", &t); while(t--) { solve(); } return 0; }
相关文章推荐
- nyoj1016德莱联盟【判断两线段是否相交】
- 判断两线段相交[nyoj 1016 德莱联盟]
- 今天写了一个很简单的判断平面坐标系两线段是否相交的算法
- 判断两条线段是否相交_模版
- C#判断线段是否相交
- 判断直线与线段 是否相交 + 加入误差 故需要判断重点 poj 3304 Segments
- 【计算几何】 POJ 1127 Jack Straws 判断线段是否相交
- You can Solve a Geometry Problem too----判断两线段是否相交
- NYOJ1016:德莱联盟(判线段相交)
- 德莱联盟(判断两个线段是否相交)
- GIS 判断两线段是否相交
- 【计算几何】 POJ 1127 Jack Straws 判断线段是否相交
- 线段 ——2D(如何判断线段是否相交)
- 计算几何之判断两线段是否相交
- POJ_3304_Segments_线段判断是否相交
- poj 1410 Intersection(判断线段是否与实心矩形相交)
- 已知两线段的四点坐标,如何判断两线段是否相交的思路
- 判断两条线段是否相交
- 成都预赛 Complex intersecting line segments 判断线段是否相交 包含端点
- poj3304-Segments-判断直线和线段是否相交