簡單渲染流水管線C++代碼實現(四)---矩形相交處理

本篇主要來處理矩形相交問題。

其實圖形學當中很多地方涉及到矩形相交問題,比如:
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++代碼中如何呈現的

發佈了19 篇原創文章 · 獲贊 16 · 訪問量 1203
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章