呵呵呵,求一下平行,共线和相交。。。。。。。。。高(初)中数学知识。。。

 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相关推荐

  1. POJ 1269 Intersecting Lines(求直线交点)

    http://poj.org/problem?id=1269 求交点见zhhx课件 #include<iostream> #include<cstdio> #include&l ...

  2. POJ - 1269 Intersecting Lines(计算几何 + 叉积 + 跨立实验)

    链接 Intersecting Lines 题意 给出两条线段,判断是否共线,平行,或者相交,如果相交输出交点: 思路 如何判断共线: 我们知道两个向量叉积为 000,两向量共线: 所以我们只需要判断 ...

  3. poj 1069 Intersecting Lines

    POJ 1269 Intersecting Lines 解题报告 (2010-05-07 19:10) 一.问题描述 http://acm.pku.edu.cn/JudgeOnline/problem ...

  4. 暑期集训3:几何基础 练习题C: POJ - 1269

    2018学校暑期集训第三天--几何基础 练习题B --  POJ - 1269 Intersecting Lines We all know that a pair of distinct point ...

  5. 【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 ...

  6. POJ1269 Intersecting Lines 计算几何 C语言

    题目:http://poj.org/problem?id=1269 题目大意:给出四个点确定两条直线.如果是一条线输出"LINE",如果平行输出"NONE", ...

  7. poj 1269 直线相交情况

    链接:http://poj.org/problem?id=1269 题意:给两条直线,判断它们是重合.平行还是相交,相交则求交点. #include<iostream> #include& ...

  8. POJ1269:Intersecting Lines——题解

    http://poj.org/problem?id=1269 题目大意:给四个点,求前两个点所构成的直线和后两个点所构成的直线的位置关系(平行,重合,相交),如果是相交,输出交点坐标. ------- ...

  9. POJ1269:Intersecting Lines(判断两条直线的关系)

    题目:POJ1269 题意:给你两条直线的坐标,判断两条直线是否共线.平行.相交,若相交,求出交点. 思路:直线相交判断.如果相交求交点. 首先先判断是否共线,之后判断是否平行,如果都不是就直接求交点 ...

  10. poj 1269 计算几何

    题意:此题要处理给定的四个点,前两个点,后两个点分别构成一条直线,判断这两条直线是否重合,平行,相交,若相交,给出交点. 解题思路:可以用向量叉积判断是否重合和平行 重合:设第一个点和第二个点构成向量 ...

最新文章

  1. 这家刚拿了1亿美元的基金会,要证明“21世纪是生物的世纪”
  2. 基于便签纸的无限延生学习方法
  3. apache服务器性能诊断,Apache服务器性能评测
  4. 找对象不能只看TA的外表
  5. odoo基础数据加载
  6. transforms.Compose()函数
  7. 深度学习(七十三)pytorch学习笔记
  8. 【英语学习】【Level 07】U03 Amazing wonders L5 Modern structures in China
  9. Kubernetes1.91(K8s)安装部署过程(一)--证书安装
  10. python用jieba模块分词实现关键词提取
  11. solr的索引库配置
  12. vi 快捷方式 手册
  13. Center OS和Linux的区别
  14. python和R的区别
  15. 电脑ping,电脑ping如何打开 电脑ping打开教程
  16. 实战篇-OpenSSL之AES加密算法-ECB模式
  17. 怎么抠图最简单?教你一行Python代码去除照片背景
  18. 制作独特彩妆美女模特头像照片的PS教程
  19. 阿里云现代农业园区解决方案,智慧园区大数据、产品管理、物联网、企业管理平台解决方案
  20. TLC2558IDWIC 12BIT 400 KSPS AD S/O 20-SOIC

热门文章

  1. 偏微分方程数值解法python_Python数值计算----------求解简单的偏微分方程
  2. Linux开发_控制shell光标
  3. c语言实现shellcode转换工具
  4. 常见算法基础题思路简析(六)-字符串篇
  5. opencv中的子库
  6. MSSQL中Case语句的用法
  7. Convert Sorted List to Balanced Binary Search Tree leetcode
  8. ie下使用frameset布局导致跨域cookie丢失问题解决
  9. 实战Citrix XenDesktop 5.5部署
  10. 从java project到dynamic web project