线线几何位置关系
来源:互联网 发布:显示登录成功和链接php 编辑:程序博客网 时间:2024/05/17 02:51
UVA 378
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=11&page=show_problem&problem=314
点击打开链接
我想,我这应该是最最原始的解题代码了,哈哈哈~
原先写了很用到向量叉积几何意义来求解的代码可是结果一直出错。。。果断最原始。
#include <cstdio>struct point{//点结构体 int x,y; point(int a=0,int b=0){ x=a; y=b;}//给点赋坐标值};point p1,p2,p3,p4;inline void outResult(){//判断两条线段是否相交 double k1,k2,b1,b2; if( (p2.x==p1.x) || (p3.x==p4.x)){//直线p1p2或p3p4平行y轴无斜率 if( (p2.x==p1.x) && (p3.x==p4.x)){//都没斜率 if(p1.x==p3.x) printf("LINE\n"); else printf("NONE\n"); } else if( (p2.x==p1.x) && (p3.x!=p4.x)){//p3p4有,p1p2无斜率 k2 = (p4.y-p3.y)/(p4.x-p3.x); b2 = (p3.y - k2*p3.x); printf("POINT %.2lf %.2lf\n", p1.x, k2*p1.x + b2); } else{//p1p2有,p3p4无斜率 k1 = ((p2.y-p1.y)/(p2.x-p1.x)); b1 = (p1.y - k1*p1.x); printf("POINT %.2lf %.2lf\n", p3.x, k1*p3.x + b1); } } else{//都存在斜率时 k1 = (double)(p2.y-p1.y)/(p2.x-p1.x); k2 = (double)(p4.y-p3.y)/(p4.x-p3.x); b1 = (double)(p1.y - k1*p1.x); b2 = (double)(p3.y - k2*p3.x); // printf("%lf %lf %lf %lf\n",k1,k2,b1,b2); if( k1==k2 ){ if( b1==b2 ) printf("LINE\n"); else printf("NONE\n");//只是平行不同线 } else printf("POINT %.2lf %.2lf\n",(b1-b2)/(k2-k1),k1*(b1-b2)/(k2-k1) + b1); }}inline void init(){ int x1,y1,x2,y2,x3,y3,x4,y4; scanf("%d%d %d%d %d%d %d%d",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4); p1 = point(x1,y1); p3 = point(x3,y3); p2 = point(x2,y2); p4 = point(x4,y4);}int main(){ int n; scanf("%d",&n); printf("INTERSECTING LINES OUTPUT\n"); while(n--){ init(); outResult(); } printf("END OF OUTPUT\n"); return 0;}
待更,持续更新中……
0 0
- 线线几何位置关系
- <模板><计算几何>点与多边形的位置关系
- POJ1269_Intersecting Lines(计算几何/两直线位置关系模板)
- 计算几何算法概览——位置关系
- POJ1269_Intersecting Lines(几何/叉积判断直线位置关系)
- 几何+点与线段的位置关系+二分(POJ2318)
- 计算几何问题汇总--点与线的位置关系
- 计算几何 如何判断两个向量的位置关系
- 计算几何问题汇总--点与线的位置关系
- 计算几何算法概览——算法篇之位置关系
- 计算几何算法概览——算法篇之位置关系
- 计算几何算法概览——算法篇之位置关系
- poj 2318 TOYS(计算几何 点跟直线的位置关系)
- poj 2398 Toy Storage(计算几何,点跟直线的位置关系)
- POJ 2318 TOYS(计算几何+点与直线位置关系+二分)
- 计算几何--两圆的位置关系(求交点个数及交点坐标)
- POJ1584 几何 凸包判断 点和多边形的位置关系
- 几何位置变换
- SLIC超像素分割算法研究(代码可下载)
- 史上最详细最全面的ss-panel部署教程(V3版本)
- nyoj 14 会场安排问题
- IO流文件的复制删除
- R语言常用函数总结大全
- 线线几何位置关系
- 三种常用排序算法(冒泡、选择、快速)的Java实现
- JQueryEasyUI 组件 布局 Layout组件
- codeforces Plant Tree
- 关于我
- Debug调试
- Java子类与父类之间的对象转换
- (邻接表构图-网络寻路题解
- 135. Candy