W3School TIY Editor

  • W3School 在线教程
  • 改变方向
  • 暗黑模式
​x
 
# 三行配置使编译器支持绘图功能:
import sys
import matplotlib
matplotlib.use('Agg')
​
import numpy as np
from scipy.spatial import ConvexHull  # 导入凸包算法
import matplotlib.pyplot as plt
​
# 定义二维点集数据
points = np.array([
  [2, 4],  # 点 1
  [3, 4],  # 点 2
  [3, 0],  # 点 3
  [2, 2],  # 点 4
  [4, 1],  # 点 5
  [1, 2],  # 点 6
  [5, 0],  # 点 7
  [3, 1],  # 点 8
  [1, 2],  # 点 9(重复点)
  [0, 2]   # 点 10
])
​
# 计算凸包:
hull = ConvexHull(points)  # 生成凸包对象
hull_points = hull.simplices  # 获取构成凸包的边索引
​
# 绘制所有蓝色散点:
plt.scatter(points[:,0], points[:,1], color='blue')  # 蓝色散点
​
# 绘制凸包边界
for simplex in hull_points:
  plt.plot(points[simplex,0], points[simplex,1], 'k-')  # 黑色实线连接凸包边
​
plt.show()
​
# 两行代码实现图形输出:
plt.savefig(sys.stdout.buffer)
sys.stdout.flush()