poj 1269 Intersecting Lines
呵呵呵,求一下平行,共线和相交。。。。。。。。。高(初)中数学知识。。。
1 #include<cstdio> 2 #include<cstring> 3 #include<cmath> 4 #define N 1000005 5 #define LL long long 6 #define inf 0x3f3f3f3f 7 #define eps 1e-8 8 using namespace std; 9 int n; 10 struct point{double x,y;}; 11 struct line{point a,b;}s1,s2; 12 struct node{ 13 double a,b,c,d; 14 }a,b; 15 point sub(point a, point b) 16 { 17 point t; t.x=a.x-b.x; t.y=a.y-b.y; 18 return t; 19 } 20 double cross(point a, point b) 21 { 22 return a.x*b.y-a.y*b.x; 23 } 24 /*double turn(point p1, point p2, point p3) 25 { 26 return cross(sub(p2,p1),sub(p3,p1)); 27 }*/ 28 /*bool sgn(point a, point b) 29 { 30 if (fabs(a.x-b.x)<eps && fabs(a.y-b.y)<eps) return 0; 31 return 1; 32 } 33 bool same_line(line a, line b) 34 { 35 if (!sgn(a.a,b.a) || !sgn(a.b,b.a) || !sgn(a.a,b.b) || !sgn(a.a,b.b)) return 0; 36 if (fabs(turn(a.a,a.b,b.a)*turn(a.a,a.b,b.b))>eps) return 0; 37 if (fabs(turn(b.a,b.b,a.a)*turn(b.a,b.b,a.b))>eps) return 0; 38 return 1; 39 }*/ 40 bool same_line() 41 { 42 return (fabs((a.a-a.c)*(b.b-b.d)-(a.b-a.d)*(b.a-b.c))<eps); 43 } 44 bool par() 45 { 46 /*if (fabs(cross(sub(a.a,a.b),sub(b.a,b.b)))<eps) return 1; 47 return 0;*/ 48 return (fabs((a.c-a.a)*(b.b-a.b)-(a.d-a.b)*(b.a-a.a))<eps); 49 } 50 point cross_point(line a, line b) 51 { 52 double k1,k2,t; 53 k1=cross(sub(a.b,b.a),sub(b.b,b.a)); 54 k2=cross(sub(b.b,b.a),sub(a.a,b.a)); 55 t=k1/(k1+k2); 56 point ans; 57 ans.x=a.b.x+(a.a.x-a.b.x)*t; 58 ans.y=a.b.y+(a.a.y-a.b.y)*t; 59 return ans; 60 } 61 int main() 62 { 63 puts("INTERSECTING LINES OUTPUT"); 64 scanf("%d",&n); 65 while (n--) 66 { 67 scanf("%lf%lf%lf%lf",&s1.a.x,&s1.a.y,&s1.b.x,&s1.b.y); 68 scanf("%lf%lf%lf%lf",&s2.a.x,&s2.a.y,&s2.b.x,&s2.b.y); 69 a.a=s1.a.x,a.b=s1.a.y,a.c=s1.b.x,a.d=s1.b.y; 70 b.a=s2.a.x,b.b=s2.a.y,b.c=s2.b.x,b.d=s2.b.y; 71 if (same_line()) 72 { 73 if (par()) puts("LINE"); 74 else puts("NONE"); 75 } 76 else 77 { 78 point ans=cross_point(s1,s2); 79 printf("POINT %.2f %.2f\n",ans.x,ans.y); 80 } 81 } 82 puts("END OF OUTPUT"); 83 return 0; 84 }
转载于:https://www.cnblogs.com/ccd2333/p/6480826.html
poj 1269 Intersecting Lines相关推荐
- POJ 1269 Intersecting Lines(求直线交点)
http://poj.org/problem?id=1269 求交点见zhhx课件 #include<iostream> #include<cstdio> #include&l ...
- POJ - 1269 Intersecting Lines(计算几何 + 叉积 + 跨立实验)
链接 Intersecting Lines 题意 给出两条线段,判断是否共线,平行,或者相交,如果相交输出交点: 思路 如何判断共线: 我们知道两个向量叉积为 000,两向量共线: 所以我们只需要判断 ...
- poj 1069 Intersecting Lines
POJ 1269 Intersecting Lines 解题报告 (2010-05-07 19:10) 一.问题描述 http://acm.pku.edu.cn/JudgeOnline/problem ...
- 暑期集训3:几何基础 练习题C: POJ - 1269
2018学校暑期集训第三天--几何基础 练习题B -- POJ - 1269 Intersecting Lines We all know that a pair of distinct point ...
- 【POJ - 1269 】Intersecting Lines (计算几何,直线间的位置关系)
题干: We all know that a pair of distinct points on a plane defines a line and that a pair of lines on ...
- POJ1269 Intersecting Lines 计算几何 C语言
题目:http://poj.org/problem?id=1269 题目大意:给出四个点确定两条直线.如果是一条线输出"LINE",如果平行输出"NONE", ...
- poj 1269 直线相交情况
链接:http://poj.org/problem?id=1269 题意:给两条直线,判断它们是重合.平行还是相交,相交则求交点. #include<iostream> #include& ...
- POJ1269:Intersecting Lines——题解
http://poj.org/problem?id=1269 题目大意:给四个点,求前两个点所构成的直线和后两个点所构成的直线的位置关系(平行,重合,相交),如果是相交,输出交点坐标. ------- ...
- POJ1269:Intersecting Lines(判断两条直线的关系)
题目:POJ1269 题意:给你两条直线的坐标,判断两条直线是否共线.平行.相交,若相交,求出交点. 思路:直线相交判断.如果相交求交点. 首先先判断是否共线,之后判断是否平行,如果都不是就直接求交点 ...
- poj 1269 计算几何
题意:此题要处理给定的四个点,前两个点,后两个点分别构成一条直线,判断这两条直线是否重合,平行,相交,若相交,给出交点. 解题思路:可以用向量叉积判断是否重合和平行 重合:设第一个点和第二个点构成向量 ...
最新文章
- 这家刚拿了1亿美元的基金会,要证明“21世纪是生物的世纪”
- 基于便签纸的无限延生学习方法
- apache服务器性能诊断,Apache服务器性能评测
- 找对象不能只看TA的外表
- odoo基础数据加载
- transforms.Compose()函数
- 深度学习(七十三)pytorch学习笔记
- 【英语学习】【Level 07】U03 Amazing wonders L5 Modern structures in China
- Kubernetes1.91(K8s)安装部署过程(一)--证书安装
- python用jieba模块分词实现关键词提取
- solr的索引库配置
- vi 快捷方式 手册
- Center OS和Linux的区别
- python和R的区别
- 电脑ping,电脑ping如何打开 电脑ping打开教程
- 实战篇-OpenSSL之AES加密算法-ECB模式
- 怎么抠图最简单?教你一行Python代码去除照片背景
- 制作独特彩妆美女模特头像照片的PS教程
- 阿里云现代农业园区解决方案,智慧园区大数据、产品管理、物联网、企业管理平台解决方案
- TLC2558IDWIC 12BIT 400 KSPS AD S/O 20-SOIC
热门文章
- 偏微分方程数值解法python_Python数值计算----------求解简单的偏微分方程
- Linux开发_控制shell光标
- c语言实现shellcode转换工具
- 常见算法基础题思路简析(六)-字符串篇
- opencv中的子库
- MSSQL中Case语句的用法
- Convert Sorted List to Balanced Binary Search Tree leetcode
- ie下使用frameset布局导致跨域cookie丢失问题解决
- 实战Citrix XenDesktop 5.5部署
- 从java project到dynamic web project