判断两条线段是否相交
2015-05-22 21:44
387 查看
判断两条线段AB CD是否相交 (判断ACBD是否能构成凸多边形)
线段AB与线段CD 是否相交 顺序叉积 AC CB BD DA (AC叉CB CB叉BD BD叉DA DA叉AC)
记一下叉积正负的个数
线段AB与线段CD 是否相交 顺序叉积 AC CB BD DA (AC叉CB CB叉BD BD叉DA DA叉AC)
记一下叉积正负的个数
#include <iostream> using namespace std; int cross(int x1,int y1,int x2,int y2,int x3,int y3) { return (x1-x3)*(y2-y3)-(x2-x3)*(y1-y3); } int main() { int x1,y1,x2,y2,x3,y3,x4,y4; while(cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4) { int c[4]; c[0]=cross(x1,y1,x2,y2,x3,y3); c[1]=cross(x1,y1,x2,y2,x4,y4); c[2]=cross(x3,y3,x4,y4,x1,y1); c[3]=cross(x3,y3,x4,y4,x2,y2); int sum1=0,sum2=0; for(int i=0;i<4;i++) { if(c[i]>0) sum1++; if(c[i]<0) sum2++; } if(sum1>0&&sum2>0) cout<<"no"<<endl; else cout<<"yes"<<endl; } return 0; }
相关文章推荐
- 判断两条线段是否相交
- 如何判断平面上两条线段(注意是线段)是否相交?(某公司校园招聘面试试题)
- 已知两条线段端点,判断是否相交及交点
- 判断两条线段是否相交
- c# 判断两条线段是否相交(判断地图多边形是否相交)
- 判断两条线段是否相交
- 关于如何判断在平面上的两条线段是否相交
- 判断两条线段是否相交
- 判断两条线段是否相交(三种算法)
- 使用叉积判断两条线段是否相交
- 判断两条线段是否相交
- 判断两条线段是否相交 计算几何
- 【算法导论】33.2:判断任意两条线段是否相交
- 判断两条线段是否相交_模版
- 判断两条线段是否相交
- 判断两条线段是否相交
- 两条线段知道端点line1(x1,y1)(x2,y2)line2(x3,y3)(x4,y4),判断两条线段是否相交,交点坐标(x,y)
- 判断两条线段是否相交
- 判断两条线段是否相交
- 判断两条线段是否相交