本篇主要來處理矩形相交問題。
其實圖形學當中很多地方涉及到矩形相交問題,比如:
1.把屏幕視口當作一個矩形,屏幕內的矩形和屏幕的相交問題
2.把圖片裁剪出一塊矩形時
判斷依據如下:
具體的C++代碼如下
//rect1、rect2爲待判斷相交的矩形,rect爲輸出矩形
RECTANGLE* RectangleCollide(const RECTANGLE* rect1, const RECTANGLE* rect2, RECTANGLE* rect)
{
if (rect1->x1 > rect2->x2 ||
rect2->x1 > rect1->x2 ||
rect1->y1 > rect2->y2 ||
rect2->y1 > rect1->y2)
return nullptr;
else
{
*rect = *rect1;
if (rect->x1 < rect2->x1)
rect->x1 = rect2->x1;
if (rect->x2 > rect2->x2)
rect->x2 = rect2->x2;
if (rect->y1 < rect2->y1)
rect->y1 = rect2->y1;
if (rect->y2 > rect2->y2)
rect->y2 = rect2->y2;
return rect;
}
}
感謝各位的瀏覽,下一期準備更新三維向量以及三維矩陣在C++代碼中如何呈現的