“中心”比凹多边形的质心

39视图(30天)
我使用多边形的质心高度标记在地图应用程序。这是绝对好许多凹多边形凸多边形和很好。
然而,一些多边形(香蕉、甜甜圈)显然不产生预期的结果:重心是在这些情况下 多边形区域。
有人知道一个更好的方法来找到一个合适的点 任意多边形区域(可能包含漏洞!)附加标记?
谢谢你!
10评论

登录置评。

接受的答案

darova
darova 2020年4月20日
这是这个任务的最简单的解决方案
x =兰德(4,1);
y =兰德(4,1);
x = [x;x (1)];
y = [y;y (1)];
2 = 2;%角落放置点
n = 3;%多远从角落里面
x0 = (x (ii-1) + 2 * n * (ii) + x (2 + 1) / (n + 1) / 2;
y0 = (y (ii-1) + 2 * n * (ii) + y (2 + 1) / (n + 1) / 2;
如果~ inpolygon (x0, y0, x, y)
x0 = x (2) - (x0-x (ii));
y0 = y (2) - (y0-y (ii));
结束
情节([x (ii) x0], [y (ii) y0],“或”)
线(x, y)
平等的

更多的答案(3)

乍得格林
乍得格林 2021年10月5日
我刚遇到这个问题当试图把一个文本标签中一个新月形的冰架。的重心或均值或中位数的坐标冰架多边形边界以外的冰架。这是我能想出的最好的解决方案:
%转换polyshape大纲:
P = polyshape (x, y);
%,德劳内多边形的三角测量:
T =三角(P);
%现在发现中心所有三角形的点:
[C r] =外心(T);
%的指数最大的中心从边界半径:
[~,印第安纳州]= max (r);
%这些中心坐标的中心胖多边形的一部分:
xc = C(印第安纳州,1);
yc = C(印第安纳州,2);

图像分析
图像分析 2020年4月18日
如果你计算的距离变换形状你会得到一个“脊柱”沿着中线的形状。我不知道任何时候有比任何其他点。也许你可以拿点一半从一端到另一端,如果有端点。我知道如何去做的唯一方法就是数字图像,不分析一组(x, y)顶点点。,它需要图像处理工具箱,所以您可以使用bwskel()或bwdist ()。
1评论
大卫·弗朗哥
大卫·弗朗哥 2020年4月19日
谢谢,但我处理shapefile和我需要找到一个多边形的骨架……

登录置评。


乍得格林
乍得格林 2021年10月8日
我添加了一个 polycenter 正是你所需要的功能 气候数据为Matlab工具箱
如果你有一个shapefile,句法是角度:
S = shaperead (“myshapefile.shp”);
(xc、yc) = polycenter(年代);
然后 xc、yc 是任何条目的shapefile结构的中心 年代
3评论
乍得格林
乍得格林 2022年3月1日
@Sim 检查字段名称的shapefile然后用x, y坐标作为输入,像这样
(xc、yc) = polycenter (x, y);
这将是一样的吗
[lonc, latc] = polycenter(经度、纬度);
如果你的输入是地理坐标。

登录置评。

类别

找到更多的在基本的多边形帮助中心文件交换

s manbetx 845


释放

R2019b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的