在为图片实施了一个非常幼稚的镶嵌之后,我开始寻找更快的东西,因为我的实施需要几秒钟的时间来处理 4 位数的网站,在环顾 jts 之后似乎已经足够了,但我已经用它头撞了一段时间,所以我决定来在这里问,我有一张我想使用 voronoi 图进行镶嵌的图片,但是一旦我设置了 VoronoiDiagramBuilder (对我来说)参数似乎是正确的,就会发生许多意想不到的事情。
VoronoiDiagramBuilder voronoi=new VoronoiDiagramBuilder();
voronoi.setClipEnvelope(new Envelope(0,width,0,height));
voronoi.setTolerance(0.01);
voronoi.setSites(sitesList);
Geometry geo=voronoi.getDiagram(new GeometryFactory());
for(int i=0;i<geo.getNumGeometries();i++)
{
Polygon poly=(Polygon)geo.getGeometryN(i);
zonesList.add(poly.getCoordinates());
}
其中width=900,height=598,siteList=5000,这是构建voronoi图的顶点数。
我希望几何区域 geo.getArea() 为 900*598,但它实际上是一个更大的数字,geo.getPoints() 也是如此,它返回一个大于 siteList 大小的数字;最后,图中各个多边形的坐标不在我用 voronoi.setClipEnvelope(new Envelope(0,width,0,height)) 设置的信封内。
在这一点上,我认为我遇到了一些非常错误的事情,或者我应该使用另一个库来更好地满足我的简单需求,因为 jts 似乎对于图片镶嵌来说太过分了,即使我喜欢速度。