我正在研究一个二维自动生成地图算法,其中我只创建了一些具有左上角和右下角点的矩形房间。所有房间都是矩形的,除了一些偶尔共享墙壁外,不会重叠。
我的问题是,当我有两个房间最终共享它们之间的一堵墙时,如何快速轻松地输出在该墙内被两个房间共享的“瓷砖”(或点)列表?
我有种希望得到这样的东西:
我的问题是,当我有两个房间最终共享它们之间的一堵墙时,如何快速轻松地输出在该墙内被两个房间共享的“瓷砖”(或点)列表?
我有种希望得到这样的东西:
private List<Point> SharedTiles (Point P1, Point P2, Point P3, Point P4)
{
/*
P1 = Top Left point of room1
P2 = Bottom Right point of room1
P3 = Top Left point of room2
P4 = Bottom Right point of room2
*/
List<Point> _SharedTiles = new List<Point>();
//Magic goes here...
return _SharedTiles;
}
Intersects()
,它返回一个布尔值,还有一个静态方法Intersect()
,它返回交集矩形。这是一个微妙的区别!请注意,如果没有相交,Intersect()
会返回一个空矩形。 - Cole CampbellRectangle.Intersect
方法,我都快哭了。 - Big McLargeHuge