代码示例:
import numpy as np
import matplotlib.pyplot as plt
def scale_polygon(polygon, scale_factor):
center = np.mean(polygon, axis=0)
scaled_polygon = (polygon - center) * scale_factor + center
return scaled_polygon
def scale_irregular_polygon(polygon, scale_factor):
scaled_polygon = scale_polygon(polygon, scale_factor)
center = np.mean(polygon, axis=0)
vectors = scaled_polygon - center
scaled_vectors = vectors * scale_factor
scaled_polygon = center + scaled_vectors
return scaled_polygon
# 绘制不规则多边形
polygon = np.array([(0, 0), (2, 4), (3, 1), (5, 5), (7, 2), (8, 4), (9, 0)])
plt.plot(polygon[:, 0], polygon[:, 1])
# 缩放不规则多边形
scale_factor = 0.5
scaled_polygon = scale_irregular_polygon(polygon, scale_factor)
plt.plot(scaled_polygon[:, 0], scaled_polygon[:, 1])
plt.show()