51nod 1264 线段相交(跨立实验)
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 线段相交(跨立实验)相关推荐
- [计算几何]判断线段相交(跨立实验)
欢迎大家访问我的老师的OJ---caioj.cn 题面描述 传送门 思考 看完视频之后, 发现SCY讲得真(mo)好(hu). 下面我来总结一下规律: 我们以 p 1 p_1 p1为原点,判断 p ...
- (图论)51NOD 1264 线段相交
给出平面上两条线段的两个端点,判断这两条线段是否相交(有一个公共点或有部分重合认为相交). 如果相交,输出"Yes",否则输出"No". 输入 第1行:一个数T ...
- 快速排斥、跨立实验判断线段是否相交
写在前面 在其他博客中看到这方面的知识,很多都是重复,并且说的总是云里雾里的,所以这里我就自己总结一下这种问题如何求解,判断两个线段是否相交在前面我们提到了会用到叉积的一点知识,那么这里就来详细说一下 ...
- 判断两线段是否相交——快速排斥与跨立实验
如何判断两条线段是否相交呢?如果是我们去解决这个问题,用眼睛很容易就看出来了,但是如果用计算机来解决这个问题,该怎么办呢?下面介绍两个方法,这两个方法结合起来就能完美解决这个问题了. 一.快速排斥 对 ...
- 跨立实验判断线段是否相交-POJ3304
在二维坐标下介绍一些定义: 点:A(x1,y1),B(x2,y2) 向量:向量AB=( x2 - x1 , y2 - y1 )= ( x , y ); 向量的模 |AB| = sqrt ( x*x+y ...
- 【计算几何】判断线段相交(跨立实验)
题意:有n条线段(编号为1n),按1n的顺序放在二维坐标系上(就是先放1号,再放2号--),要求输出最上面的那些线段的编号.(就是没有其他线段压在它上面的那些线段) 注意:有交点即为被压. 1.叉积 ...
- 【代码超详解】ZOJ 2551 / POJ 2653 Pick-up Sticks(快速排斥实验 + 跨立实验判断线段是否相交 · 模板)
一.传送门 http://poj.org/problem?id=2653 https://zoj.pintia.cn/problem-sets/91827364500/problems/9182736 ...
- [GIS算法] 判断两线段是否相交的四种方案(快速排斥+跨立实验、参数方程求解、凸多边形、点在线的哪一侧)-附C语言实现
文章目录 算法一:快速排斥+跨立试验 代码 算法二:参数方程求解 代码 算法三:凸多边形 算法四:点在线的哪一侧 算法一:快速排斥+跨立试验 重点掌握 [原理]利用矢量的叉乘 [图解] 代码 #def ...
- 计算几何 快速排斥和跨立实验 判断两线段相交
线段P1P2, Q1Q2,判断其是否相交,通过快速排斥和跨立实验则说明相交 首先要知道:向量a×向量b(×为向量叉乘),若结果小于0,表示向量b在向量a的逆时针方向:若结果大于0,表示向量b在向量a的 ...
最新文章
- 腾讯音乐:全民K歌推荐系统架构及粗排设计
- nginx bind() to 0.0.0.0:**** failed (13: Permission denied)
- Homebrew--MacOSX下的套件管理器
- exit命令的返回值
- 支付宝不止怀有“社交梦”,社区金融才是它的野心所在
- 用Python实现二叉树,完全二叉树和满二叉树
- [python]pythonic的字典常用操作
- Java ClassLoader findSystemClass()方法与示例
- 开设计算机课程的必要性,学前教育专业开设计算机音乐制作课程的必要性与可行性...
- WinForm客户端限速下载(C#限速下载)
- 基于java的班级管理系统
- spss 因子分析非正定矩阵解决方案
- IT简历写作注意事项
- 黑苹果10.13.6安装WebDriver驱动nvidia独立显卡,以及修改机型
- 11【matplotlib常用统计图】03绘制多次条形图
- 基于E-Mail的隐蔽控制:机理与防御
- bugku-加密-题解
- 什么是APS系统?导入APS要注意什么?值得反复观看
- 重磅 | 消灭所有马赛克,谷歌宣布机器学习图像锐化工具RAISR
- WiFi工作原理简述