YuXin_Liu/图像分割/segment/seg3DN.py

39 lines
1.1 KiB
Python

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 定义不规则图形的顶点坐标
polygon1_points = np.array([[10, 10], [20, 10], [30, 30], [10, 30]])
polygon2_points = np.array([[40, 40], [60, 40], [60, 60], [40, 60]])
polygon3_points = np.array([[70, 70], [90, 70], [90, 90], [70, 90]])
polygon4_points = np.array([[20, 70], [50, 70], [50, 50], [20, 50]])
# 创建三维图形
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# 定义填充颜色
colors = ['r', 'g','b','y']
# 定义函数来绘制填充图形
def plot_fill_polygon(ax, points, color):
x, y = points[:, 0], points[:, 1]
X, Y = np.meshgrid(x, y)
Z = np.zeros_like(X)
ax.plot_surface(X, Y, Z, color=color, alpha=0.5)
# ax.contour(X, Y, Z, color=color, alpha=0.5)
# 绘制填充图形
plot_fill_polygon(ax, polygon1_points, colors[0])
plot_fill_polygon(ax, polygon2_points, colors[1])
plot_fill_polygon(ax, polygon3_points, colors[2])
plot_fill_polygon(ax, polygon4_points, colors[3])
# 设置坐标轴标签
ax.set_xlabel('X axis')
ax.set_ylabel('Y axis')
ax.set_zlabel('Z axis')
plt.show()