У меня есть код для расширения многоугольника, он работает путем умножения xs и ys на коэффициент, а затем центрирования полученного многоугольника в центре оригинала.
У меня также есть код для определения значения коэффициента расширения с учетом точки, которой должен достичь многоугольник:
У меня есть код для расширения многоугольника, он работает путем умножения xs и ys на коэффициент, а затем центрирования полученного многоугольника в центре оригинала.
У меня также есть код для определения значения коэффициента расширения с учетом точки, которой должен достичь многоугольник:
[code]import numpy as np import itertools as IT import copy from shapely.geometry import LineString, Point
points = LineString(points) point = Point(point) return points.distance(point)
def distancePolygon2Point(points, point): distances = [] for i in range(len(points)): if i==len(points)-1: j = 0 else: j = i+1 line = [points[i], points[j]] distances.append(distanceLine2Point(line, point))
""" Returns the distance from a point to the nearest line of the polygon, AND the distance from where the normal to the line (to reach the point) intersets the line to the center of the polygon. """ def distancePolygon2PointAndCenter(points, point): distances = [] for i in range(len(points)): if i==len(points)-1: j = 0 else: j = i+1 line = [points[i], points[j]] distances.append(distanceLine2Point(line, point))
minDistance = np.min(distances) i = np.where(distances==minDistance)[0][0] if i==len(points)-1: j = 0 else: j = i+1 line = copy.deepcopy([points[i], points[j]])