在多边形内随机选择点的最有效方法?


要在多边形内随机选择点,可以使用蒙特卡罗模拟方法。该方法是通过生成随机点并计算它们是否在多边形内来估计多边形的面积或其他属性。

以下是在多边形内随机选择点的示例代码:

pythonCopy codeimport random

def random_point_in_polygon(polygon):
    min_x, min_y, max_x, max_y = polygon.bounds  # 获取多边形的边界框
    while True:
        point = Point(random.uniform(min_x, max_x), random.uniform(min_y, max_y))  # 生成随机点
        if polygon.contains(point):  # 判断点是否在多边形内
            return point

在上面的代码中,使用shapely库中的Polygon对象表示多边形。使用bounds属性获取多边形的边界框,然后使用random.uniform函数生成随机点,最后使用contains方法判断点是否在多边形内。如果点在多边形内,则返回该点。

请注意,这种方法可能需要生成许多点才能得到一个良好的估计,因此可能需要增加最大尝试次数。


原文链接:codingdict.net