poj1269 简单的计算几何
2013-07-19 20:39
295 查看
这是学了计算几何后做的第一道题,刚开始没看清题意以为是求线段的。于是模版往上一套WA,悲剧啊
后来好好看了一下题目 又看了一下别人的代码 发现是自己题目没看清 原来是过这两个点的直线 改了之后果断AC啊! 高兴 虽然这是一道很水的题目 但是还是值得高兴
需要的知识大家都会 两条直线求交点难道自己不会推 肯定会啊 自己推吧
下面是我写的代码 仅供参考
后来好好看了一下题目 又看了一下别人的代码 发现是自己题目没看清 原来是过这两个点的直线 改了之后果断AC啊! 高兴 虽然这是一道很水的题目 但是还是值得高兴
需要的知识大家都会 两条直线求交点难道自己不会推 肯定会啊 自己推吧
下面是我写的代码 仅供参考
#include<cstdio>///判断两条是否相交 共线 相交求出交点 #include<cstring> #include<cmath> #include<algorithm> #define eps 1e-8 using namespace std; struct Point { double x,y; }s[4]; typedef struct Point point; double multi(point p0, point p1, point p2)//叉积 { return ( p1.x - p0.x )*( p2.y - p0.y )-( p2.x - p0.x )*( p1.y - p0.y ); } int isIntersected(point s1,point e1, point s2,point e2)//判断是否相交 在一条线上 或不相交 { if(fabs(multi(s1,e1,s2))<=eps&&fabs(multi(s1,e1,e2))<=eps)printf("LINE\n"); else if((e1.x-s1.x)*(e2.y-s2.y)==(e2.x-s2.x)*(e1.y-s1.y)) printf("NONE\n"); else //注意这要求的是两条直线的交点 不是两条线段的 { point jiaodian; double a1=s1.y-e1.y; double b1=e1.x-s1.x; double c1=s1.x*e1.y-e1.x*s1.y; double a2=s2.y-e2.y; double b2=e2.x-s2.x; double c2=s2.x*e2.y-e2.x*s2.y; jiaodian.x=(b1*c2-b2*c1)/(a1*b2-a2*b1); jiaodian.y=(a2*c1-a1*c2)/(a1*b2-a2*b1); printf("POINT %.2f %.2f\n",jiaodian.x,jiaodian.y); } } int main() { #ifdef LOCAL freopen("in.txt","r",stdin); #endif // LOACL int N; scanf("%d",&N); printf("INTERSECTING LINES OUTPUT\n"); while(N--) { scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&s[0].x,&s[0].y,&s[1].x,&s[1].y,&s[2].x,&s[2].y,&s[3].x,&s[3].y); isIntersected(s[0],s[1],s[2],s[3]); } printf("END OF OUTPUT\n"); return 0; }
相关文章推荐
- POJ1269 简单的计算几何判断直线相交
- 计算几何的简单模板
- hdu 4998 简单计算几何
- hdu 1245 Saving James Bond 最短路spfa+简单计算几何
- uva 11437 Triangle Fun (简单计算几何)
- hdu2948 简单计算几何 判断点在三角形 矩形 圆形内
- 简单计算几何 hdu-4491 Windmill Animation
- hdu 4720 计算几何简单题
- HDU 4617 Weapon (简单三维计算几何,异面直线距离)
- 简单数学题或者计算几何:Codeforces 659D-Bicycle Race
- FZU2148 Moon Game(简单的计算几何)
- 计算几何 点到线段的距离 点在简单多边形内 点到凸多边形的距离
- POJ 1269(计算几何初步——简单处理解析几何,求直线交点)
- HDU2948Geometry Darts(简单计算几何)
- 【解题报告】 Ural 1348 简单的计算几何
- 计算几何--简单多边形与圆面积交
- 二分+叉积 apio2011 陈可卿 计算几何的一道简单题 poj2318 兼集训总结
- 简单介绍几个计算几何的资源
- CodeForces 498A-Crazy Town-简单计算几何
- poj 1556 简单计算几何+简单图论