[csharp]view plain
copy
print?
/*功能:判斷線段和矩形是否相交
先判斷線段的倆個端點是否在矩形的內部,在就必然相交
其次判斷線段的包圍盒是否和矩形相交,不相交的話線段和矩形肯定也不相交
最後判斷,矩形的四個頂點是否位於線段的兩側,是則必然相交,否則就不相交*/
[csharp]view plain
copy
print?
[csharp]view plain
copy
print?
[csharp]view plain
copy
print?
using
system;
using
system.collections.generic;
using
system.linq;
using
system.text;
namespace
public
float
x,y;
} public
class
line
public
point p1;
public
point p2;
} public
class
rectangle
public
point p1;
public
point p2;
public
float
minx }
public
float
maxx }
public
float
miny }
public
float
maxy }
};
public
static
bool
pointinsiderectangle(point point,rectangle rect)
// -1 點位於線段的左側,0 點位於線段上面 ,1 點位於線段右側
public
static
intpointatlineleftright(point point,line line)
public
static
bool
istwolineintersect(line line1,line line2)
public
static
bool
islineintersectrect(line line,rectangle rect)
public
static
bool
lineconverttorectangle(line line,rectangle rect)
public
static
void
main()
} }
[csharp]view plain
copy
print?
"code"class
="csharp"
>
public
bool
rectcrossrect(rect r1, rect r2,
refvector2 start,
refvector2 end)
矩形重疊(矩形相交,dp)
平面有n個矩形,第乙個矩形左下標為 x1 1 y1 1 右上標為 x2 1 y2 1 如果有2個或多個矩形有公共區域則認為他們相互重疊 計算平面內重疊矩形數量最多的地方有幾個矩形相互重疊 輸入第一行n 2 n 50 表示矩形的個數 第二行n個整數x1 i 10 9 x1 i 10 9 表示左下角的橫...
演算法5 8 矩形相交
在70年代,計算機已經發展了一段時間,晶元的規模也越來越複雜。因此人們不得不發明一些晶元設計的軟體。在軟體中完畢晶元的設計 除錯工作。當時。模擬執行的時候依據電路的設計,模擬的過程中須要不斷地推斷矩陣是否相交。那時候還沒有非常好的演算法。人們僅僅能通過暴力手段逐個推斷矩陣是否相交。在今天看來,這樣的...
使用Python判斷線段是否與矩形相交
我們在初等幾何中學過如何判斷兩條直線是否相交。在歐幾里得平面上,兩條直線要麼平行,要麼相交,要麼重合。這是歐幾里得第五公設的推論。相交的兩條直線恰好有乙個交點,而重合的兩條直線有無數個交點。判斷兩條直線位置關係的代數方法是 聯立兩條之直線方程,無解,則兩條直線平行,存在唯一解則兩條直線相交,存在兩個...