51nod1264:线段相交

判断线段相交:

  • 关于快速排斥和跨立实验的博客:https://blog.csdn.net/li1615882553/article/details/80372202
  • 在快速排斥中,如果两个矩形不相交,那么线段一定不相交。如果两个矩形相交,那么线段不一定相交,所以判断线段相交一般先进行一次快速排斥再进行一次跨立实验。
  • 这道判线段相交题中说明有一个公共点或有部分重合认为相交,所以仅对其进行垮立实验就可以了。
  • 另外,注意浮点数比大小问题,与题中的1e-8相比较。
import java.util.Scanner;public class Main {static class Dian {// 点类Double x, y = 0.0;}static class Line {// 线类Dian a = new Dian();Dian b = new Dian();}static Double chaji(Dian p0, Dian p1, Dian p2) {// 点p1叉点p2return (p1.x - p0.x) * (p2.y - p0.y) - (p2.x - p0.x) * (p1.y - p0.y);}static Line[] l = new Line[2];// 线数组public static void main(String[] args) {Scanner in = new Scanner(System.in);int T = in.nextInt();for(int i=0;i<2;i++)l[i]= new Line();for (int i = 0; i < T; i++) {l[0].a.x = in.nextDouble();l[0].a.y = in.nextDouble();l[0].b.x = in.nextDouble();l[0].b.y = in.nextDouble();l[1].a.x = in.nextDouble();l[1].a.y = in.nextDouble();l[1].b.x = in.nextDouble();l[1].b.y = in.nextDouble();if (chaji(l[1].a, l[0].a, l[0].b) * chaji(l[1].b, l[0].a, l[0].b) <1e-8&& chaji(l[0].a, l[1].a, l[1].b)* chaji(l[0].b, l[1].a, l[1].b) <1e-8)System.out.println("Yes");elseSystem.out.println("No");}}
}

51nod 1264 线段相交(跨立实验)相关推荐

  1. [计算几何]判断线段相交(跨立实验)

    欢迎大家访问我的老师的OJ---caioj.cn 题面描述 传送门 思考 看完视频之后, 发现SCY讲得真(mo)好(hu). 下面我来总结一下规律: 我们以 p 1 p_1 p1​为原点,判断 p ...

  2. (图论)51NOD 1264 线段相交

    给出平面上两条线段的两个端点,判断这两条线段是否相交(有一个公共点或有部分重合认为相交). 如果相交,输出"Yes",否则输出"No". 输入 第1行:一个数T ...

  3. 快速排斥、跨立实验判断线段是否相交

    写在前面 在其他博客中看到这方面的知识,很多都是重复,并且说的总是云里雾里的,所以这里我就自己总结一下这种问题如何求解,判断两个线段是否相交在前面我们提到了会用到叉积的一点知识,那么这里就来详细说一下 ...

  4. 判断两线段是否相交——快速排斥与跨立实验

    如何判断两条线段是否相交呢?如果是我们去解决这个问题,用眼睛很容易就看出来了,但是如果用计算机来解决这个问题,该怎么办呢?下面介绍两个方法,这两个方法结合起来就能完美解决这个问题了. 一.快速排斥 对 ...

  5. 跨立实验判断线段是否相交-POJ3304

    在二维坐标下介绍一些定义: 点:A(x1,y1),B(x2,y2) 向量:向量AB=( x2 - x1 , y2 - y1 )= ( x , y ); 向量的模 |AB| = sqrt ( x*x+y ...

  6. 【计算几何】判断线段相交(跨立实验)

    题意:有n条线段(编号为1n),按1n的顺序放在二维坐标系上(就是先放1号,再放2号--),要求输出最上面的那些线段的编号.(就是没有其他线段压在它上面的那些线段) 注意:有交点即为被压. 1.叉积 ...

  7. 【代码超详解】ZOJ 2551 / POJ 2653 Pick-up Sticks(快速排斥实验 + 跨立实验判断线段是否相交 · 模板)

    一.传送门 http://poj.org/problem?id=2653 https://zoj.pintia.cn/problem-sets/91827364500/problems/9182736 ...

  8. [GIS算法] 判断两线段是否相交的四种方案(快速排斥+跨立实验、参数方程求解、凸多边形、点在线的哪一侧)-附C语言实现

    文章目录 算法一:快速排斥+跨立试验 代码 算法二:参数方程求解 代码 算法三:凸多边形 算法四:点在线的哪一侧 算法一:快速排斥+跨立试验 重点掌握 [原理]利用矢量的叉乘 [图解] 代码 #def ...

  9. 计算几何 快速排斥和跨立实验 判断两线段相交

    线段P1P2, Q1Q2,判断其是否相交,通过快速排斥和跨立实验则说明相交 首先要知道:向量a×向量b(×为向量叉乘),若结果小于0,表示向量b在向量a的逆时针方向:若结果大于0,表示向量b在向量a的 ...

最新文章

  1. 腾讯音乐:全民K歌推荐系统架构及粗排设计
  2. nginx bind() to 0.0.0.0:**** failed (13: Permission denied)
  3. Homebrew--MacOSX下的套件管理器
  4. exit命令的返回值
  5. 支付宝不止怀有“社交梦”,社区金融才是它的野心所在
  6. 用Python实现二叉树,完全二叉树和满二叉树
  7. [python]pythonic的字典常用操作
  8. Java ClassLoader findSystemClass()方法与示例
  9. 开设计算机课程的必要性,学前教育专业开设计算机音乐制作课程的必要性与可行性...
  10. WinForm客户端限速下载(C#限速下载)
  11. 基于java的班级管理系统
  12. spss 因子分析非正定矩阵解决方案
  13. IT简历写作注意事项
  14. 黑苹果10.13.6安装WebDriver驱动nvidia独立显卡,以及修改机型
  15. 11【matplotlib常用统计图】03绘制多次条形图
  16. 基于E-Mail的隐蔽控制:机理与防御
  17. bugku-加密-题解
  18. 什么是APS系统?导入APS要注意什么?值得反复观看
  19. 重磅 | 消灭所有马赛克,谷歌宣布机器学习图像锐化工具RAISR
  20. WiFi工作原理简述

热门文章

  1. 增肥经验:把增肥变成习惯
  2. 记录一次通过青岛OJ开源平台搭建自己的oj
  3. ActionForward详解
  4. STM32F103之系统时钟初始化及延迟函数
  5. 【按键】[独立按键] - 3:三击 以及 N击
  6. 算法补天系列之有序表的四种实现方式——AVL树,SB树,红黑树,跳表(重点)介绍说明
  7. 又拍云Java SDK使用
  8. 12.19-12.26任务总结
  9. scheduled java_java使用@Scheduled注解执行定时任务
  10. 国内linux常用时间源