`
kangkang203
  • 浏览: 13850 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

矩形相交

阅读更多
checkAxisAligned : function (rect)   
        {  
            this.tthis.x = this.left;  
            this.tthis.y = this.top;  
                      
            this.trect.x = rect.left;  
            this.trect.y = rect.top;  
              
            return (this.tthis.x < this.trect.x + rect.width &&  
                      this.trect.x < this.tthis.x + this.width &&  
                      this.tthis.y < this.trect.y + rect.height &&  
                      this.trect.y < this.tthis.y + this.height);  
        } 
来自melon游戏引擎,它的意思就是如果两个矩形是相交的,那么r1的lx必定小于r2的lr,且r2的lx必定小于r1的rx,这样就必定抽象出来的两条线段有一个交集。当y方向的也这样,那么就说明两个矩形相交了。

(2) 对于这个问题,假设两个矩形相交,设相交之后的矩形为C,且矩形C的左上角坐标为(Xc1,Yc1),右下角坐标为(Xc2,Yc2),经过观察上图,很 显然可以得到:
Xc1 = max(Xa1,Xb1)
Yc1 = max(Ya1,Yb1)
Xc2 = min(Xa2,Xb2)
Yc2 = min(Ya2,Yb2)
这样就求出了矩形的相交区域。
另外,注意到在不假设矩形相交的前提下,定义(Xc1,Yc1),(Xc2,Yc2),且Xc1,Yc1,Xc2,Yc2的值由上面四个式子得出。这样, 可以依据Xc1,Yc1,Xc2,Yc2的值来判断矩形相交。
Xc1,Yc1,Xc2,Yc2只要同时满足下面两个式子,就可以说明两个矩形相交。
3) Xc1 <= Xc2
4) Yc1 <= Yc2
即:
max(Xa1,Xb1) <= min(Xa2,Xb2)
max(Ya1,Yb1) <= min(Ya2,Yb2)
分享到:
评论

相关推荐

    C# 快速计算两个矩形相交源码(修复版)

    以下是关于C#中计算矩形相交的相关知识点的详细说明。 1. **矩形数据结构**: - 在C#中,矩形通常可以表示为一个类,包含四个属性:左下角的X和Y坐标(Left和Bottom)以及右上角的X和Y坐标(Right和Top)。例如: ...

    flash判断旋转矩形是否相交

    在计算机图形学中,矩形相交检测是一个常见的任务,特别是在2D游戏开发、碰撞检测以及界面设计等领域。本篇文章将深入探讨如何实现"Flash判断旋转矩形是否相交"的功能,以及相关的重要知识点。 首先,我们需要理解...

    易语言矩形相交并生成相交矩形源码

    在这个“易语言矩形相交并生成相交矩形源码”资源中,我们可以深入探讨几个重要的IT知识点,特别是与图形处理和算法相关的部分。 首先,我们要理解矩形相交的基本原理。在计算机图形学中,矩形的相交检测是一个常见...

    并查集矩形相交判断.pdf

    在本题中,我们需要利用并查集来解决矩形相交的问题,即计算给定矩形集合中最终形成的不同连通块的数量。 首先,我们需要理解如何确定两个矩形是否相交。有两个基本的矩形相交判断方法: 1. 顶点位置判断法: - ...

    易语言源码易语言矩形相交源码.rar

    易语言源码易语言矩形相交源码.rar 易语言源码易语言矩形相交源码.rar 易语言源码易语言矩形相交源码.rar 易语言源码易语言矩形相交源码.rar 易语言源码易语言矩形相交源码.rar 易语言源码易语言矩形相交源码....

    C++判断矩形相交的方法

    C++中判断两个矩形是否相交是一个常见的问题,...通过上述知识点的介绍,我们可以看到,判断矩形相交在C++编程中是一个涉及基础数学和面向对象设计的有趣问题,对于图形学、游戏开发和GUI设计等领域都有着广泛的应用。

    易语言矩形相交

    在计算机图形学和编程中,矩形相交是一个常见的几何问题,它涉及到判断两个矩形是否在空间中有重叠部分。易语言,一种简洁而直观的中文编程语言,提供了处理这种问题的函数和方法。本篇文章将深入探讨易语言中的矩形...

    矩形相交.c

    矩形相交.c

    矩形相交以及求出相交的区域的原理解析

    矩形相交问题在计算机图形学、几何计算和游戏开发等领域有着广泛的应用。解决这个问题的基本目标是确定两个矩形是否重叠,如果相交,如何找到它们相交部分的矩形区域。以下是对该问题的详细解析: 首先,我们需要一...

    矩形相交并生成相交矩形源码-易语言

    在编程领域,尤其是在图形处理和计算机视觉中,矩形相交是一个常见的问题。"矩形相交源码例程"是易语言(EasyLanguage)中一个用于演示如何检测和处理两个矩形交集的程序。易语言是一种面向对象、组件驱动的中文编程...

    试验七.1.矩形相交.c

    试验七.1.矩形相交.c

    vista下免费的圆和矩形相交测试的可执行程序

    免费的圆和矩形相交测试的可执行程序,另有源代码的包在http://download.csdn.net/source/1583366 下载 这个只有可执行程序,方便演示用。 其实用flash更好,可惜不大会用,这个使用win32API编的

    求两个矩形求范围交集的快速算法

    两个矩形相交有三种情况: 1. 相离,可以通过判断两个矩形的X最大值,最小值以及Y最大值,最小值的大小比较判定。(空间搜索外包矩形常用算法) 2. 包含与被包含,也是通过两个矩形的X最大值,最小值以及Y最大值,...

    易语言-易语言矩形相交并生成相交矩形

    在"易语言矩形相交并生成相交矩形"这个项目中,我们主要涉及的是图形图像处理和几何算法的知识点。 首先,我们要理解矩形相交的基本原理。在二维几何中,两个矩形相交意味着它们的边界至少有一个交点。判断两个矩形...

    易语言矩形相交源码-易语言

    本资源“易语言矩形相交源码”是针对图形图像处理领域的一个代码示例,主要用于实现两个矩形是否相交以及如何生成相交矩形的功能。 在计算机图形学中,矩形相交检测是一个常见的问题,特别是在游戏开发、图像处理和...

    circles - 矩形相交面积:计算大矩形中圆的相交面积的快速函数。-matlab开发

    此函数采用半径为 r 的以 (xcenter, ycenter) 为中心的圆列表并计算大小为 xmax/ymax 1024x1024 的矩形中的相对面积。 矩形大小可以改变该函数的主要优势在于其计算速度。 10000 个圆的平均计算时间约为 0.3 秒。这...

    Python判断直线和矩形是否相交的方法

    A(ax,ay),B(px,py)为两个点 (x1,y1),(x2,y2)为矩形的左上角和右下角坐标 ,判断A,B两点是否和矩形相交 """ def Judge(ax, ay, px, py, x1, y1, x2, y2): #转换为真除法 ax, ay, px, py = float(ax), float(ay), ...

    求三个矩形的位置关系与重叠面积-3个矩形.c

    求三个矩形的位置关系与重叠面积

Global site tag (gtag.js) - Google Analytics