繁体   English   中英

使用 r 将凹多边形转换为凸多边形

[英]concave polygon into convex polygons using r

我正在尝试使用 r 将凹多边形拆分为凸多边形。 我试图弄清楚如何为一个多边形成功完成此操作,并希望以自动方式在大量多边形上实现此功能。

到目前为止我能想到的唯一方法是使用三角剖分将这个形状分解成几个更小的形状,然后将它们组合成一些最小数量的凸多边形。

library(sp)
library(rgdal)
library(sf)

files <- list.files("~/Cluster polygons 2020",pattern=".shp", full.names=TRUE)
cluster=readOGR(files[1])
spatstat::is.convex(maptools::as.owin.SpatialPolygons(cluster[1,])) #CHECK IF CONVEX
[1] FALSE

在此处输入图片说明

plygn=sfdct::ct_triangulate(sf::st_as_sf(cluster[1,]),D=TRUE)
plygn=st_collection_extract(plygn, "POLYGON")
plygn=as_Spatial(plygn)

length(plygn) #HOW MANY TRIANGLES GENERATED?
[1] 58

在此处输入图片说明

这是我得到的。 是否有一种巧妙/有原则的方法将三角形分组为最少数量的组,然后将它们合并,以便最终产品是一组凸多边形? 或者有没有更好的方法来解决这个问题?

我很感激你的帮助。 这是shapefile的链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM