精华内容
下载资源
问答
  • 几种几何图形是否相交判断

    千次阅读 2013-07-02 11:31:48
    1 两条直线是否相交 可以判断斜率,但是要注意分母为0的情况。 更通用的是叉积。分别在两条线上选两点,求其向量,不平行即相交。 2 两条线段是否相交 叉积。取其中一条线段的某一个端点,向另一个端点做...

    1 两条直线是否相交

    可以判断斜率,但是要注意分母为0的情况。

    更通用的是叉积。分别在两条线上选两点,求其向量,不平行即相交。


    2 两条线段是否相交

    叉积。取其中一条线段的某一个端点,向另一个端点做向量记为p1,向另一线段的两个端点做向量记为p2和p3,那么p1必定夹在p2和p3中间,即p1叉积p2的结果,与p1叉积p3的结果,符号相异。同理,再取另一线段的某一个端点,重复上述步骤,结果的符号也相异,那么就相交。

    注意叉积为零的情况。


    3 点是否在三角形内

    面积法,该点与三角形的三个顶点,可以构成三个三角形,如果这三个三角形面积之和等于原三角形面积,得证。

    叉积法。


    4 点是否在凸多边形内部

    多边形化为三角形


    5 两个矩形是否相交

    其中一个矩形的一个或者多个顶点,必然在另一个矩形内部,包括边界。


    6 一个圆形和一个矩形是否相交

    坐标系变换,令矩形左下方顶点为原点,下边为x轴,左边为y轴,按矩形四条边切分坐标系,共分为9个区域。

    圆心在区域5,是否相交,很好判断。

    圆心在区域2,4,6,8, 将半径与最近垂线段长度作比较。

    圆心在区域1,3,6,9, 将半径与最近顶点距离作比较。

    注意矩形被圆形包含的情况判断。


     * 叉积的一个非常重要性质是可以通过它的符号判断两矢量相互之间的顺逆时针关系: 满足 右手螺旋法则。 若 P × Q > 0 , 则P在Q的顺时针方向。 若
     * P × Q < 0 , 则P在Q的逆时针方向。 若 P × Q = 0 , 则P与Q共线,但可能同向也可能反向。
     * 叉积的方向与进行叉积的两个向量都垂直,所以叉积向量即为这两个向量构成平面的法向量。 如果向量叉积为零向量,那么这两个向量是平行关系。
     * 
     * 求三角形面积,海伦公式。


    展开全文
  • java判断图形相交,并获得相交区域

    千次阅读 2019-07-27 08:22:44
    客户提出的需求:比如地图上有2个图形图形任意,需要判断图形的交点区域的图形。 这样做会遇到很多的难点:目前我们地图上提供可供客户绘制的图形有: 1.箭头(这个暂时不需要判断) 2.椭圆 3.曲线(这两个...

    客户提出的需求:比如地图上有2个图形,图形任意,需要判断出图形的交点区域的图形。

    这样做会遇到很多的难点:目前我们地图上提供可供客户绘制的图形有:

    1.箭头(这个暂时不需要判断)

    2.椭圆

    3.曲线(这两个还没有实现判断的逻辑,但是原理其实是一样的)

    4.矩形

    5.多边形

    6.圆

    7.折线

    这样的判断其实有一定的难度性,需要判断客户点击的图形是怎样的,根据不同的图形来判断。而且判断出来的公共区域可能是一个集合,也就是说可能有多个点。

    下面是我实现的效果图:实现的简单过程是根据客户点击的图形传入到后台进行判断。地图上的判断会有一定的坑,比如绘制的圆形传参到后台的话需要进行坐标系的转换等,因为当前的地图是使用84坐标系,比如两圆包含的时候,需要返回一个圆形,但是返回的参数在地图上显示的时候竟然变成了椭圆形等等。最终的解决方案还是翻去国外找到的答案,凭借我的蹩脚猫级别的英语成功找到了答案,美滋滋。

    实现的效果图如下:

    1、圆和折线段相交:

    2.圆和圆相交:有外接和包含

    3.圆和矩形相交

    4.圆和多边形相交效果图

    5.矩形和多边形相交

    6.矩形和矩形,矩形和线段,多边形和线段等等除开椭圆和曲线(这两个没时间实现了,其实只要在后台绘制出相关的参数便可以实现了)

    效果图如上,但是经过我的测试,在地图上如果绘制的图形范围较大的话,图形的交点是会有一定的误差,大概在200米左右 。我估计可能是计算四舍五入坐标系的结果,和之前的交点的坐标有大概0.0001的差距

    展开全文
  • geotools 判断点线是否相交主要的maven依赖代码实现常用的空间关系函数 主要的maven依赖 <dependency> <groupId>org.locationtech</groupId> <artifactId>jts</artifactId> <...

    主要的maven依赖

    <dependency>
      <groupId>org.locationtech</groupId>
      <artifactId>jts</artifactId>
      <version>1.13</version>
    </dependency>
    

    代码实现

    // 工厂
    GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory();
    // WKTReader 
    WKTReader reader = new WKTReader(geometryFactory);
    // 线对象
    Geometry line = reader.read("LINESTRING(120 40,120 20)");
    // 点对象
    Geometry point = reader.read("POINT(120 30)");
    // 是否相交
    boolean intersects = line.intersects(point);
    System.out.println(intersects);
    

    常用的空间关系函数

    在这里插入图片描述
    点击跳转geotools官方链接

    展开全文
  • 矩形的相交问题也是一个常用的问题,最近碰到的有点多,连续碰到了三四题了,每次都要重新写,不如直接总结出来,直接写成一个板子,以后就能抄了; 目前只考虑没有角度的矩形相交 首先是矩形的相交问题:矩形的...

    矩形的相交问题也是一个常用的问题,最近碰到的有点多,连续碰到了三四题了,每次都要重新写,不如直接总结出来,直接写成一个板子,以后就能抄了;

    目前只考虑没有角度的矩形相交

    首先是矩形的相交问题:矩形的相交分为好几种相交:即

    我们设两个矩形的点分别为:

    第一个矩形A:ax1,ay1,ax2,ay2              第二个矩形B:bx1,by1,bx2,by2

    方法一:

    矩形相交的结果仍是矩形,因此构成相交矩形C的左下和右上就是:cx1,cy1,cx2,cy2;

    cx1=max(ax1,bx1)         //左下x为最大的左下x集合

    cy1=max(ay1,by1)         //左下y为最大的左下y集合

    cx2=min(ax2,bx2)         //右上x为最小的右上x集合

    cy2=min(ay2,by2)         //右上y为最小的右上y集合

    如果两个矩形不相交,那么的出来的相交矩形C满足:(cx1>cx2)||(cy1>cy2),就是左下不是左下点了。

    根绝这个方法,可以得出,1.矩形是否相交,2.相交的面积。

    写成代码就是:

    int get_sum(){//判断和求和一起出来
    	if(cx1>cx2)
    		return 0;
    	if(cy1>cy2)
    		return 0;
    	return (cx2-cx1)*(cy2-cy1);
    }

    方法二:

    两个矩形相交的条件:两个矩形的重心距离在x轴y轴上都小于两个矩形长或宽的一半之和。

    就是判断:

    重心距离在x轴上的投影长度<两个矩形的在x轴的长度之和/2

    重心距离在y轴上的投影长度<两个矩形在y轴上的宽度之和/2

    换成代码就是:

    int judge(Rect r1,RECT r2){
    	if(abs((r1.x1+r1.x2)/2-(r2.x1+r2.x2)/2)<((r1.x2+r2.x2-r1.x1-r2.x1)/2)
    	&& abs((r1.y1+r1.y2)/2-(r2.y1+r2.y2)/2)<((r1.y2+r2.y2-r1.y1-r2.y1)/2))
    		return 1;
    	return 0;
    }

    多边形相交

    参考评论区的一位聚聚的思路:

    判断二维多边形相交 只需要判断

            图形1有任意顶点在图形2的内部 || 图形2有任意顶点在图形1的内部

    update2021-9-10补充思路(多边形相交):

    在看评论的时候,突然想起,可以用半平面交的思路解决点在多边形内的判断问题.

    结合之前的半平面交博客(计算几何基础--半平面求交 ))原博客中使用半平面交求多边形面积,我们可以修改一下,使用向量法,依次判断一个多边形的边是否在一个点的一侧.

    例如下面的图(随手一画)

     

    判断 多边形FGHI 是否在 多边形ABCDE 内,

    Step1:选择点F

    Step2:遍历边AB,BC,CD,DE,EA,用向量点乘判断是否在左边.

    Step:如果点F都在多边形的左边,那么我们就能判断你点f在多边形ABCDE内,同理判断GHI点.

    若点都在多边形内部,则说明 多边形FGHI 在 多边形ABCDE 内.

    当然,这种思路只适合凸多边形,如果是凹的话,就会出现问题.

    现在对于凹多边形还是没有思路.

     

    展开全文
  • 使用gdal计算点与圆相交的条件:   注意:以下方法以WKT格式为准。 1.圆形在GDAL中无法直接通过两个点位信息以及半径描述出来,需要自己通过构建圆形的方式才能拼凑出符合GDAL的图形描述,其中参数graph为图形...
  • 给定平面直角坐标系上的两条线段,判断是否相交。 输入: 有多组测试数据。按Ctrl-C键退出程序。 每组测试数据有2行,每行4个实数,表示线段的两个端点坐标。 输出: 若相交,则输出"yes",否则输出"no"。每...
  • 图形相交相切

    2012-07-14 21:55:42
    计算机图形学课程设计代码(运用MFC编写的)之图形相交相切
  • 判断两个多边形是否相交相交

    千次阅读 2020-04-22 15:49:00
    //判断两多边形线段是否相交 function isSegmentsIntersectant(segA, segB) {//线线 const abc = (segA[0][0] - segB[0][0]) * (segA[1][1] - segB[0][1]) - (segA[0][1] - segB[0][1]) * (segA[1][0]...
  • 严格来说,是要判断产生的点是否共线的,但是这样概率太低,所以我就没有判断。生成的点不能直接连起来,因为点的顺序有可能是错乱的,所以首先要进行顺序判断,方法是计算角度。找到平面内某一点,计算多边形每一个...
  • 在页面上画几个圆,判断他们是否相交 以点击鼠标为圆心,之后拖动鼠标为半径。 &amp;lt;!doctype html&amp;gt; &amp;lt;html lang=&quot;en&quot;&amp;gt; &amp;lt;head&amp;gt; ...
  • 判断多边形和多边形是否相交

    千次阅读 2019-11-22 16:37:34
    python实现 ... 思路:判断多边形、线段是否和另一多边形相交,可先判断他们的控制矩形是否相交。...当矩形的边与多边形的顶点相交的时刻,不记为两图形相交。 可用的测试代码如下: # !/usr/bin/python3.6 ...
  • 计算几何--判断线段是否相交

    千次阅读 2016-03-24 20:10:08
    计算几何算法概览 一、引言  计算机的出现使得很多原本十分繁琐的...在现代工程和数学领域,计算几何在图形学、机器人技术、超大规模集成电路设计和统计等诸多领域有着十分重要的应用。在本文中,我们将对计算
  • 主要为大家详细介绍了Unity实现图形相交检测,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 问题很简单,给你一个矩形和一个圆,问你是否他们相交。注意,这里的相交不是面积相交。也就是说,圆在矩形内(且不相切)是不相交的。或者矩形在圆内(且矩形的四个点不在圆上)也是不相交的。 那么,我们怎么来...
  • 图形文字相交效果PPT教程。大猫菲菲29号教程:当图形遇上文字。步骤:1、插入一个圆形,一个文本框。2、复制一个同样的圆形与文字,并与原形状和文字对齐。3、制作园内文字。4、美化调整。5、换个其他的形状试试。
  • 图形相交问题

    2018-09-26 16:27:07
    1 两条直线是否相交 可以判断斜率,但是要注意分母为0的情况。 更通用的是叉积。分别在两条线上选两点,求其向量,不平行即相交。   2 两条线段是否相交 叉积。取其中一条线段的某一个端点,向另一个端点做...
  • 判断两矩形是否相交

    千次阅读 2016-02-17 00:15:57
    这两种情况都可以看作是两个矩形是否相交的检测。看似简单的问题,真正动手实现时,却发现自己却有许多地方想不清楚。 这篇文章是我看到的对 AABB 碰撞检测的实现 解释 得 最简单清晰的文章,转载在此。 转自 ...
  • GJK之判断是否相交

    千次阅读 2014-10-07 09:23:23
     尽管我们改变了之前的做法来判断是否碰撞,但是我们依然没有通过那三个步骤得到一个包含原点的单纯形。我们必须创建单纯形,这样就能够保证我们得到的单型和 原点的距离越来越近。迭代过程中有两点需要...
  • 判断两个线段是否相交

    千次阅读 2015-07-12 14:46:58
    如果直线AB和线段CD已经相交,那么继续判断直线CD与线段AB是否相交,如果不相交,那么线段AB和线段CD肯定不相交。 如果直线AB与线段CD相交,且直线CD与线段AB相交,那么可以断定线段AB和线段CD相交.  关键问题是...
  • [code="java"] import java.awt.*; import java.util.Random; import javax.swing.*;... import javax.swing.border.TitledBorder;... * 随机画出两个圆,判断它们是否相交 8. * @author Firkla...
  • shapely是专门做图形计算的包,基本上图形线段,点的判断包里都有,shapely里主要由Point,LineString,Polygon这三类组成,在shapely里点,线,面之间都是可以做判断的,比如说计算点到线段的距离,点到面之间的...
  • SuperMap iClient for javaScript 判断几何对象是否相交
  • 判断扇形和圆是否相交 面试的时候被问到如何判断扇形和圆是否相交,当时也是比较懵的,刷leetcode不会碰到这种问题。我大概分了几个情况进行讨论,并且用到了求点到直线的距离公式。面试官后来提示说从几何的角度...
  • 推荐学习博客:... 一:判断两矩形是否相交 设矩形A的左下角坐标为(xa1,ya1),右上角坐标为(xa2,ya2) 矩形B的左下角坐标为(xb1,yb1),右上角坐标为(xb2,yb2) 判断是否相交,可通...
  • 如何判断两个矩形是否相交

    千次阅读 2019-07-21 21:42:27
    判断图形相交 一个简单的例子:在平面坐标里有四个圆分别以(2,2),(2,-2),(-2,-2),(-2,2)为圆心,现取平面内任意一点,问其是否落于圆内。 算法思路:四个圆关于原点中心对称,可以对所求点取绝对值,...
  • js 判断平面几何图形是否重叠

    千次阅读 热门讨论 2018-09-05 10:20:08
    1. 点线面数据格式 点: { x: xxx, y: xxx } 线: [{ x: xxx, y: xxx }, { x: xxx, y: xxx }] 面: [{ x: xxx, y: xxx }, { x: xxx, y: xxx }, { x: xxx, y: xxx }...] ...//判断两多边形线段是否相交 fu...
  • 【Unity】图形相交检测

    千次阅读 2018-05-22 18:19:49
    本文会实现几个圆形与其他2D图形相交检测: 1、圆形与圆形 2、圆形与胶囊体 3、圆形与扇形 4、圆形与凸多边形 5、圆形与AABB 6、圆形与OBB

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,058
精华内容 8,423
关键字:

如何判断图形是否相交