HDU 1086 判定直线相交
来源:互联网 发布:js中字符串比较 编辑:程序博客网 时间:2024/06/03 19:37
主要用叉积来求,感觉计算几何用叉积的地方很多
计算几何这块,黑书上讲得比较好,可以看下,直线相交,有规范相交和非规范相交,求交点,求交点个数等类型
#include<iostream> #include<stdio.h> #include<math.h> struct point { double x,y; }a[110]; double det(double x1,double y1,double x2,double y2) { return x1*y2-x2*y1; } double cross(point a,point b,point c) { return det(b.x-a.x,b.y-a.y,c.x-a.x,c.y-a.y); } int dblcmp(double d) { if(fabs(d)<1e-6) return 0; return d>0?1:-1; } int seg(point a,point b,point c,point d) { if(cross(a,c,d)*cross(b,c,d)>0) return 0; if(cross(c,a,b)*cross(d,a,b)>0) return 0; return 1; } int main() { int n; while(scanf("%d",&n)==1&&n) { int i,j; for(i=0;i<2*n;i+=2) { scanf("%lf%lf%lf%lf",&a[i].x,&a[i].y,&a[i+1].x,&a[i+1].y); } int count=0; for(j=0;j<2*n;j+=2) { for(i=j+2;i<2*n;i+=2) { if(seg(a[j],a[j+1],a[i],a[i+1])) count++; } } printf("%d\n",count); } return 0; }
- HDU 1086 判定直线相交
- 如何判定两条直线或者线段相交
- POJ 3304 Segments(直线与线段相交判定)
- POJ 1269 || Intersecting Lines(直线重合,平行,相交判定
- POJ2074Line of Sight【直线相交判定+求交点】
- HDU 1086 You can Solve a Geometry Problem too(判定线段相交 规范相交和非规范相交)
- HDU-#1086 You can Solve a Geometry Problem too(线段相交判定)
- HDU 1086 You can Solve a Geometry Problem too(判定线段相交)
- HDU 1086 You can Solve a Geometry Problem too(判断两条直线是否相交)
- 程序员面试金典: 9.7位操作 7.3判定直角坐标系上两直线是否相交
- HDU 1147 Pick-up sticks(计算几何 判断直线相交)
- HDU 2050 直线相交问题(参考大牛总结)
- HDU 3952 Fruit Ninja(直线与线段相交枚举)
- HDU 3952 Fruit Ninja(线段与直线相交枚举)
- 线段相交 直线相交 模板
- hdu 1086 线段相交
- hdu 1086 线段相交
- 矩形相交判定
- 打印满足勾股定理的互素的整数a,b,c
- 读《企业应用架构模式》5
- Android 通过solid来定义不同边框的颜色,可以只定义一个边框的颜色
- 从研究的角度来思考软件设计模式——研究方向
- 2012-07-24晚 python 学习摘要
- HDU 1086 判定直线相交
- 通过JNI,C++ 回调java程序
- 两个list合并的问题
- SQL语言与其标准语句
- 一直以为jQuery EasyUI作者是老外
- nutch2.0+cassandra中文网页乱码问题
- ios项目icon和default图片命名规则
- hdu 1209 #sort
- android学习(第二篇,文件夹的简介)