1. 程式人生 > >如何求兩個矩形相交面積

如何求兩個矩形相交面積

如何求兩個相交矩形的交集的面積?
就是交接的公共部分面積?

class Rectangle {
Point min;
Point max;
}

Rectangle rect1, rect2;
Rectangle rect;

rect.min.x = max(rect1.min.x, rect2.min.x);
rect.min.y = max(rect1.min.y, rect2.min.y);
rect.max.x = min(rect1.max.x, rect2.max.x);
rect.max.y = min(rect1.max.y, rect2.max.y);
if ( rect.min.x < rect.max.x && rect.min.y < rect.max.y )
s = (rect.max.x-rect.min.x)×(rect.max.y-rect.min.y)
else
s = 0;

如何判斷兩個矩形是否相交?

假定矩形是用一對點表達的(minx,miny)(maxx, maxy)
那麼兩個矩形rect1{(minx1,miny1)(maxx1, maxy1)}, rect2{(minx2,miny2)(maxx2, maxy2)}

相交的結果一定是個矩形,構成這個相交矩形rect{(minx,miny)(maxx, maxy)}的點對座標是:
minx = max(minx1, minx2)
miny = max(miny1, miny2)
maxx = min(maxx1, maxx2)
maxy = min(maxy1, maxy2)

如果兩個矩形不相交,那麼計算得到的點對座標必然滿足
minx > maxx
或者
miny > maxy

相關推薦

如何矩形相交面積

如何求兩個相交矩形的交集的面積? 就是交接的公共部分面積? class Rectangle { Point min; Point max; } Rectangle rect1, rect2; Rectangle rect; rect

Opencv矩形是否相交,以及他們的重疊度

在影象處理中經常會遇到判斷兩個矩形是否相交,以及相交的比例的情況,下面是來自TLD演算法中原始碼的求法: float bbOverlap(const BoundingBox& box1,const BoundingBox& box2) {   if (box

Opencv矩形是否相交,以及相交的比值

在影象處理中經常會遇到判斷兩個矩形是否相交,以及相交的比例的情況,下面是來自TLD演算法中原始碼的求法: float bbOverlap(const BoundingBox& box1,const BoundingBox& box2) { if (box

js計算矩形相交

utf char Y軸 lang cli epo ava log function <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <

java相交座標

最近由於專案需要,根據兩個圓函式求出相交的座標。實現程式碼如下,另感謝兩圓求交點演算法實現Java程式碼,雖然他所貢獻的程式碼中存在問題,但仍有借鑑意義。 1.兩個圓相交的數學求法 在中學數學中我們

hdoj Intersection 5120 (數學計算幾何) 相交圓的面積

Intersection Time Limit: 4000/4000 MS (Java/Others) Memory Limit: 512000/512000 K (Java/Others) Total Submission(s): 1643 Accepted Submis

【數學】圓的相交部分的面積

//求兩圓相交部分面積 struct Circle{ double x,y; double r; }A,B,C,D; double calArea(Circle c1, Circl

矩形面積

http://codeforces.com/contest/1080/problem/C 題意: 給你一個n*m的棋盤,最初(1,1)上為白色,而且每個相鄰的塊顏色都不同。之後有兩次操作,第一次操作給出x1,y2,x2,y2將(x1,y1,x2,y2)這個矩形塗為白色第二次操作給出x3,y3,x4,y4將

pandas表格不相交的集合

首先先造兩個DataFrame來做示例。 import pandas as pd     a0={"number":range(10),"letter":["a","a","b","b","c","f","f","e","h","w"]}   a=pd.DataFrame(

螢幕座標系獲取矩形面積及重疊面積,重疊面積比率的java程式碼

import java.math.*; /* * x,y為矩形左上角座標,width為寬,height為高 * */ public class MyRectangle { public int

判斷矩形是否相交的原理詳解

bool Rect::intersectsRect(const Rect& rect) const {     return !(     getMaxX() < rect.getMinX() ||              rect.getMaxX() &l

ACMNO.47 矩形面積交(有圖) 平面上有矩形,它們的邊平行於直角座標系的X軸或Y軸。對於每個矩形,我們給出它的一對相對頂點的座標,請你程式設計算出矩形的交的面積

題目描述 平面上有兩個矩形,它們的邊平行於直角座標系的X軸或Y軸。 對於每個矩形,我們給出它的一對相對頂點的座標,請你程式設計算出兩個矩形的交的面積。 輸入 輸入僅包含兩行,每行描述一個矩形。 在每行中,給出矩形的一對相對頂點的座標,每個點的座標都用兩個絕對值不超過10^7的

判斷單鏈表是否有環,如果有找出環的入口位置=>相交連結串列的交點

首先如何判斷一個連結串列是否有環: 設定兩個指標(fast, slow),初始值都指向頭,slow每次前進一步,fast每次前進二步,如果連結串列存在環,則fast必定先進入環,而slow後進入環,兩個指標必定相遇。(當然,fast先行頭到尾部為NULL,則為無環連結串列

快速判斷矩形是否相交

兩個矩形之間的位置關係無外乎圖中的5中case. 難道我們要每個case都要判斷一邊,然後決定是否相交? 其實是有通用方法的。 如果兩個矩形相交,那麼矩形A B的中心點和矩形的邊長是有一定關係的。 Case 2345中,兩個中心點間的距離肯定小於AB邊長和的一半。

判斷矩形是否相交的4方法

最近在用opencv寫一個文字定位的程式,獲取到字元輪廓之後需要進行合並,涉及到判斷矩形是否相交的問題,記得去年去三星通訊研究院面試同樣問到了這個問題,如何判斷兩條線段是否相交,如何判斷兩個矩形是否相交。以前寫過一篇如何判斷線段相交的問題,上網查了一些方法,在這裡做一下後

poj 2546 2相交面積

#include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #defi

判斷矩形是否相交(C++)

最近在研究opencv識別紅綠燈的任務,用的是機器學習+影象處理的方法,但有個麻煩的問題就是誤識別率很高,為了把這些誤識別出的物體給過濾點,我想到了通過顏色佔比的方法來過濾,結果是可以過濾點一部分,但不能完全過濾。沒辦法,接下來有打算用紅綠燈框匹配燈的辦法來過濾,這就涉及

判斷矩形是否相交演算法

兩個矩形的空間位置(2d)有四種情況,如下圖: 給兩個矩形命名為A,B分別卻兩個矩形的坐上和右下角座標(Ax0,Ay0),(Bx0,By0),根據四種情況的判斷相交有四種情況,也就是說要寫四個判斷,這個就有點囉嗦了,其實根據這四種情況可以推出規律,如下圖: 這樣演算法就

【演算法】計算機圖形學的一些經典小題:判斷點在多邊形內,隨機生成三角形內的點,判斷矩形是否相交

前幾天面試的時候被問到了,如何隨機在三角形內生成點,我按照我的想法回答了一遍,但覺得回答的不夠好。最後面試官說了一個最優的方法。覺得不錯,順帶總結一下最近看到的一些關於計算機圖形學方面的經典小題,知乎上看到的還有Leetcode上的 1.判斷一個點

LeetCode 223. Rectangle Area(矩形的複合面積計算)

Find the total area covered by two rectilinear rectangles in a 2D plane. Each rectangle is defined by its bottom left corner and top r