提问人:Danila 提问时间:11/15/2023 最后编辑:Danila 更新时间:11/15/2023 访问量:48
消除等高线交叉点
Eliminate contour intersections
问:
我有对象点的坐标(x,y)。例如
from shapely.geometry import Polygon, Point
circle1 = Point(0, 0).buffer(1.5)
circle2 = Point(1, 1).buffer(1.5)
circle3 = Point(-4, 5).buffer(1.5)
其中一些是重叠的。如何消除交叉点,使图形之间留出一点空间? 您需要了解,可能会有更多带有交叉点的数字。 下面我将添加一个示例,说明需要什么:
以前:
后:
我尝试将交点移动到其形状的中心。此外,这个想法是连接图形的中心,在交叉点的中心画一个垂直线,然后将点平行于这条线移动。不幸的是,我做不到。
答:
0赞
Mahboob Nur
11/15/2023
#1
你可以这样做
from shapely.geometry import Point
from shapely.ops import unary_union
circle1 = Point(0, 0).buffer(1.5)
circle2 = Point(1, 1).buffer(1.5)
circle3 = Point(-4, 5).buffer(1.5)
merged_circles = unary_union([circle1, circle2, circle3])
separated_circles = merged_circles.buffer(-0.5)
print(separated_circles)
评论
0赞
Danila
11/15/2023
这些碎片保持在一起,我需要将它们分开
0赞
Mahboob Nur
11/15/2023
代码修改@Danila
0赞
Danila
11/15/2023
谢谢,但这并不完全正确。您需要在相交对象之间留出一个小距离的间隙。将它们组合在代码中。
0赞
Danila
11/15/2023
我已经在图像中清楚地表明了这一点
评论
union()