gpt4 book ai didi

objective-c - 从 MKPolygon 获取最小数量的 MKMapRects

转载 作者:行者123 更新时间:2023-11-28 17:33:52 25 4
gpt4 key购买 nike

所以我有一个函数接受两个 MKMapRect,第二个与第一个相交。因此该函数创建了一个 MKPolygon,它是第一个没有相交部分的矩形:

     -(void) polygons:(MKMapRect)fullRect exclude:(MKMapRect)excludeArea{
NSLog(@"Y is: %f height: %f",excludeArea.origin.y,excludeArea.size.height);
double top = excludeArea.origin.y - fullRect.origin.y;
double lft = excludeArea.origin.x - fullRect.origin.x;
double btm = (fullRect.origin.y + fullRect.size.height) - (excludeArea.origin.y + excludeArea.size.height);
double rgt = (fullRect.origin.x + fullRect.size.width) - (excludeArea.origin.x + excludeArea.size.width);
double ot = fullRect.origin.y, it = (ot + top);
double ol = fullRect.origin.x, il = (ol + lft);
double ob = (fullRect.origin.y + fullRect.size.height), ib = (ob - btm);
double or = (fullRect.origin.x + fullRect.size.width), ir = (or - rgt);
MKMapPoint points[11] = {{ol,it}, {ol,ot}, {or,ot}, {or,ob}, {ol,ob}, {ol,it}, {il,it}, {ir,it}, {ir,ib}, {il,ib}, {il,it}};
MKPolygon *polygon = [MKPolygon polygonWithPoints:points count:11];
}

现在我的问题是如何从这个 MKPolygon 中获得最小数量的 MKMapRects?我已经进行了一些谷歌搜索以及浏览论坛,但没有找到任何东西。

编辑:所以目标如下:我有一个 MKMapRect rect1,然后我有一个矩形列表,rectList,它是与 rect1 相交的 MKMapRects,我想做的是创建一个 rect1 的直线 MKPolygon,从 rect1 中删除 rectList 中所有 MKMapRects 的表面,然后创建来自创建的直线 MKPolygon 的最小 MKMaprects 数。

现在的问题如下:我可以在从 rect1 中删除一个 MKMapRect 时创建一个多边形,但我不知道如何从 rect1 中删除以下 maprects,我也不知道如何从已创建多边形。

最好的问候窥视

最佳答案

我不确定这是否是您正在寻找的,或者我是否完全理解这个问题,但是如果您只需要知道通过从一个矩形中减去另一个矩形创建的多边形中的最小矩形数,您应该能够通过检查第一个矩形中包含的第二个矩形中的角点数来做到这一点。在伪代码中:

int minNumRects(MKRect r1, MKRect r2) {
int numPointsContained = 0;
for (Point p in r2) {
if (MKMapRectContainsPoint(r1, p)) {
numPointsContained++;
}
}
if (numPointsContained == 1) {
return 2;
} else if (numPointsContained == 2) {
return 3;
} else if (numPointsContained == 4) {
return 4;
} else {
return 0;
}
}

附言- 这假设矩形是轴对齐的,但据我所知,MKRects 就是这种情况

关于objective-c - 从 MKPolygon 获取最小数量的 MKMapRects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10404937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com