function  judgeIntersect(x1,y1,x2,y2,x3,y3,x4,y4)
{

//快速排斥:
    //两个线段为对角线组成的矩形,如果这两个矩形没有重叠的部分,那么两条线段是不可能出现重叠的

//这里的确如此,这一步是判定两矩形是否相交
    //1.线段ab的低点低于cd的最高点(可能重合)
    //2.cd的最左端小于ab的最右端(可能重合)
    //3.cd的最低点低于ab的最高点(加上条件1,两线段在竖直方向上重合)
    //4.ab的最左端小于cd的最右端(加上条件2,两直线在水平方向上重合)
    //综上4个条件,两条线段组成的矩形是重合的
    //特别要注意一个矩形含于另一个矩形之内的情况

if(!(Math.min(x1,x2)<=Math.max(x3,x4) && Math.min(y3,y4)<=Math.max(y1,y2)&&Math.min(x3,x4)<=Math.max(x1,x2) && Math.min(y1,y2)<=Math.max(y3,y4)))
        return false;

//跨立实验:
    //如果两条线段相交,那么必须跨立,就是以一条线段为标准,另一条线段的两端点一定在这条线段的两段
    //也就是说a b两点在线段cd的两端,c d两点在线段ab的两端
    var u,v,w,z
    u=(x3-x1)*(y2-y1)-(x2-x1)*(y3-y1);
    v=(x4-x1)*(y2-y1)-(x2-x1)*(y4-y1);
    w=(x1-x3)*(y4-y3)-(x4-x3)*(y1-y3);
    z=(x2-x3)*(y4-y3)-(x4-x3)*(y2-y3);
    return (u*v<=0.00000001 && w*z<=0.00000001);
}

平面判断两点连线是否交叉相关推荐

  1. unity3d:向量计算:获得两点连线的垂直向量,判断目标方位(前后左右)

    获得两点连线垂直向量 /// <summary>/// 获取某向量的垂直向量/// </summary>public static Vector3 GetVerticalDir ...

  2. 判断两条链表是否交叉,若有交叉,返回交叉节点的指针。

    上周面试挂了,反思原因,莫非是因为一道算法题没做好吗?这题目是"判断两条链表是否交叉,若有交叉,返回交叉节点的指针." 为了防止反复在同一个阴沟里翻船,决定把最优解写出来. #in ...

  3. 求两点连线与其中一点为球心球的交点——赋MATLAB代码

    在轨迹规划过程中,常将其它智能体视为具有一定半径的球形障碍物(或圆形障碍物).若求智能体与障碍物最近的边缘点,其本质即求两点连线与其中一点为球心球的交点. 求的方法有多种,这里采用雅克比矩阵的方法. ...

  4. js 计算在AB两点连线上,距离A点一定距离的点的坐标

    /*** @description 获取在AB两点连线上,以AB为方向,距离A点,L处的点的坐标* @param A:{x,z} 点A* @param B:{x,z} 点B* @param L 距A点 ...

  5. 判断两个链表是否交叉,并求出交叉点

    转载自:http://blog.csdn.net/seanyxie/article/details/6247071 在前面一篇文章中讲了如何判断一个链表中有环,如果有环的话,又如何判断出环出现在哪里 ...

  6. css 定位连线_前端css实现两点连线

    // dots是点的集合 : Array dots.map((dot, index) => { // 最后一个点没有连线 if (!dot[index + 1]) return; const A ...

  7. html5点线动画,HTML5带音效的两点连线动画

    JavaScript 语言: JaveScriptBabelCoffeeScript 确定 (function() { var App = function() { this.el_svg = doc ...

  8. python 两点连线 matplotlib

    1. 若想要将两点之间连接起来: import matplotlib.pyplot as plt p1 = [x1, y1] #点p1的坐标值 p2 = [x2, y2] #点p2的坐标值 plt.p ...

  9. 点到另外两点连线的垂足计算

    假设空间某点O的坐标为(Xo,Yo,Zo),空间某条直线上两点A和B的坐标为:(X1,Y1,Z1),(X2,Y2,Z2),设点O在直线AB上的垂足为点N,坐标为(Xn,Yn,Zn).点N坐标解算过程如 ...

  10. SQL 判断两个时间段是否有交叉

    费话不说,直接上代码 SQL 代码: View Code IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo ...

最新文章

  1. 22021年江苏高考成绩查询,江苏高考成绩查询系统
  2. 九.redis学习笔记之虚拟内存
  3. 最小二乘GAN:比常规GAN更稳定,比WGAN收敛更迅速
  4. 开发高性能的WebService应用 zhuan
  5. 【机器学习】支持向量机面试知识点小结
  6. NXP(I.MX6uLL)DDR3实验——DDR3初始化、校准、超频测试
  7. python用户输入若干个分数_编写一个程序,要求用户输入五个测试分数。与字母grad对应...
  8. Java EE CDI Producer方法教程
  9. 阿里涉江:你真的会学习吗?从结构化思维说起
  10. python从入门到精通需要多久-学习Python从入门到精通需要多长时间
  11. 【渝粤题库】广东开放大学 秘书理论与实务(1) 形成性考核
  12. 概率论基础知识(书本摘录总结)
  13. Ubuntu下搜狗拼音突然无法输入中文的解决办法
  14. 拼多多远程删除用户照片事件
  15. 【转】word提升图像质量
  16. 【飞桨】Seg:U-Net【2015 MICCAI】论文研读
  17. java多图片上传功能的实现
  18. 李沐动手学深度学习笔记---含并行连结的网络 GoogLeNet / Inception V3
  19. Word 参考文献管理 - 交叉引用 + 批量修改上标
  20. 自动驾驶自主避障概况

热门文章

  1. 算法萌新如何学好动态规划(一)
  2. 62.不同的路径(力扣leetcode) 博主可答疑该问题
  3. 计算几何——poj1410,线段不规范交
  4. hive explain 源码分析
  5. virtual studio 2017 配置vistual assist激活
  6. mysql concat函数进行模糊查询
  7. 保持头脑清醒的窍门2/13
  8. 拥抱模块化的javascript
  9. Android高级模糊技术[转]
  10. 时间管理(二):时间管理的六项基本原则