分析:有三种关系,共线,平行,还有相交,共线和平行都可以使用叉积来进行判断(其实和斜率一样),相交需要解方程....在纸上比划比划就出来了....
 
代码如下:
======================================================================================================================================
#include<math.h>
#include<algorithm>
#include<stdio.h>
using namespace std;const int MAXN = 107;
const double EPS = 1e-8;struct point
{///定义点double x, y;point(double x=0, double y=0):x(x),y(y){}point operator - (const point &t) const{return point(x-t.x, y-t.y);}double operator * (const point &t) const{return x * t.y - y * t.x;}
};
struct segment
{point A, B;double a, b, c;void InIt(point t1, point t2){A = t1, B = t2;a = B.y - A.y;b = A.x - B.x;c =  A.x*B.y-B.x*A.y;}
};bool Parallel(segment t1, segment t2)
{///是否平行return fabs((t1.A-t1.B)*(t2.A-t2.B)) < EPS;
}
bool Collineation(segment t1, segment t2)
{///是否共线return fabs((t1.A-t1.B)*(t2.A-t1.B)) < EPS  && fabs((t1.A-t1.B)*(t2.B-t1.B)) < EPS;
}
point CrossPoint(segment t1, segment t2)
{point t;t.x = (t1.c*t2.b-t2.c*t1.b) / (t1.a*t2.b-t2.a*t1.b);t.y = (t1.c*t2.a-t2.c*t1.a) / (t1.b*t2.a-t2.b*t1.a);return t;
}int main()
{int N;while(scanf("%d", &N) != EOF){segment p1, p2;point A, B;printf("INTERSECTING LINES OUTPUT\n");while(N--){scanf("%lf%lf%lf%lf", &A.x, &A.y, &B.x, &B.y);p1.InIt(A, B);scanf("%lf%lf%lf%lf", &A.x, &A.y, &B.x, &B.y);p2.InIt(A, B);if(Collineation(p1, p2) == true)printf("LINE\n");else if(Parallel(p1, p2) == true)printf("NONE\n");else{point ans = CrossPoint(p1, p2);printf("POINT %.2f %.2f\n", ans.x, ans.y);}}printf("END OF OUTPUT\n");}return 0;
}

转载于:https://www.cnblogs.com/liuxin13/p/4789702.html

Intersecting Lines - POJ 1269(判断平面上两条直线的关系)相关推荐

  1. 判断平面上两条直线是否相交

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 判断平面 ...

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

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

  3. 有关如何判断平面上两直线是否平行的问题

    这几天在写一个项目,其中涉及到两条直线的平行的判断,我在这几天里考虑了几种方法,都不够理想,最后想到了下面的方法. 这里,我可以分别得到两条直线上的两个点,也就是中学时候学的两点式的直线. 假设 直线 ...

  4. 判断平面上两直线相交

    直线相交 首先引出计算几何学中一个最基本的问题:如何判断向量在的顺时针方向还是逆时针方向? 把p0定为原点,p1的坐标是(x1,y1),p2的坐标是(x2,y2).向量的叉积(cross produc ...

  5. 两条直线的交点 c语言,计算两条直线的交点(C#)

    PS:从其他地方看到的源码是有问题的.下面是修正后的 /// /// 计算两条直线的交点 /// /// L1的点1坐标 /// L1的点2坐标 /// L2的点1坐标 /// L2的点2坐标 /// ...

  6. 编写C语言代码,实现以下功能:输入平面上两个点P1(x1,y1)和P2(x2,y2)的坐标,以这两个点为左上角和右下角可以确定一个矩形,输出这个矩形的周长。要求平面上点的坐标和矩形都用结构体来表示。

    编写C语言代码,实现以下功能: 输入平面上两个点P1(x1,y1)和P2(x2,y2)的坐标,以这两个点为左上角和右下角可以确定一个矩形,输出这个矩形的周长.要求平面上点的坐标和矩形都用结构体来表示. ...

  7. 平面解析几何----过抛物线上一点作互相垂直的两条直线交抛物线与点AB,AB恒过定点P的坐标

    过抛物线上一点作互相垂直的两条直线交抛物线与点AB,AB恒过定点P的坐标 (x0+2P/(-λ),-y0)

  8. c语言 两条线段位置,C++/STL实现判断平面内两条线段的位置关系代码示例

    概念 平面内两条线段位置关系的判定在很多领域都有着广泛的应用,比如游戏.CAD.图形处理等,而两线段交点的求解又是该算法中重要的一环.本文将尽可能用通俗的语言详细的描述一种主流且性能较高的判定算法. ...

  9. 位置关系C语言,C++/STL实现判断平面内两条线段的位置关系代码示例

    概念 平面内两条线段位置关系的判定在很多领域都有着广泛的应用,比如游戏.CAD.图形处理等,而两线段交点的求解又是该算法中重要的一环.本文将尽可能用通俗的语言详细的描述一种主流且性能较高的判定算法. ...

  10. 判断两条直线(线段)的交点问题

    要判断两条直线是否有交点首先要求出两直线的斜率,如果相等级两直线平行的话就肯定没有了,反之就一定有了,就可以联立两条直线的方程(我们假定直线的方程都是可以表示出来的),求出两直线的交点然后结果就有了, ...

最新文章

  1. 空间简史-人类认识空间的旅程与其对强化学习的启示
  2. VS编译器如何单步调试
  3. 快来加入阿里云大学【云学院】班级助理招募—机会稍纵即逝,错过遥遥无期!...
  4. [SQL]UNPIVOT 多個欄位
  5. 三年的总结(技术篇)
  6. mysql添加列默认null_MySQL-无法在列中插入NULL值,但是我指定了默认值吗?
  7. angularJs service
  8. mysql查询语句中使用星号真的慢的要死?
  9. 兰大《银行会计学》命题作业离线作业
  10. 如何点亮QQ邮箱图标 - 龙 炫家族特权
  11. [转载] 中华典故故事(孙刚)——35 一文钱难倒英雄汉
  12. 支付宝小程序访问浙里办应用,提示页面访问受限,IOS无法访问
  13. 311运动(冰箱与内裤)的由来
  14. 夫妻贷款买房需要注意什么
  15. java敏感词屏蔽器,“敏感词过滤”功能设置
  16. 豆瓣的robots内容分析
  17. 数仓建模—实时数仓架构发展史
  18. springboot模板
  19. java实现word文档的导出
  20. 博图程序需要手动同步_博图新手使用说明

热门文章

  1. 如何设计软件类招聘考题
  2. linux rpm安装简要说明
  3. 全网首发:gstreamer中正确使用avdec_h264插件
  4. 写失败数据写入成功_马克·吐温写小说有多成功,做生意就有多失败,创业亏的就剩烟囱...
  5. oracle ebs采购申请接口表,Oracle EBS BOM接口表操作.doc
  6. mxm智能教育机器人无法智能对话_智能教育机器人与玩具的区别在哪里?
  7. VS C# string 字符查找 寻找指定字符
  8. alsa的动态库安装在哪里_源码编译安装MySQL8.0.20
  9. android studio 找不到reosurce,EF 6 Bridge Table Insert Not Working
  10. 怎样在 linux 系统下增加一块硬盘