Я пытаюсь отобразить поле на плоскости с помощью mpl_toolkits.mplot3d и Axe.add_collection3d (Poly3DCollection ()). Однако, когда я поворачиваю вид, возникают некоторые ошибки наложения: оранжевый куб частично скрыт синей плоскостью
Вот правильное отображение, которое я хотел бы иметь при каждом просмотре и там
проблемы, которые я бы хотел исправить
Я бы хотел исправить эти ошибки, но я не могу сделать это с помощью альфы ...
Вот мой текущий код:
from matplotlib import pyplot as plt
from c import Poly3DCollection
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
#Ground
Ground_vertices = np.array([[0,0,0], [5, 0, 0], [5, 5, 0], [0, 5, 0]])
ax.scatter3D(Ground_vertices[:, 0], Ground_vertices[:, 1], Ground_vertices[:, 2])
Ground_faces = [e for e in Ground_vertices]
ax.add_collection3d(Poly3DCollection([Ground_faces], facecolors="lavender"))
#Box
Box_vertices = np.array([[2,2,0], [3, 2, 0], [3, 3, 0], [2, 3, 0], [2, 2, 1], [3, 2, 1], [3, 3, 1], [2, 3, 1]])
ax.scatter3D(Box_vertices[:, 0], Box_vertices[:, 1], Box_vertices[:, 2], color="darkorange")
Box_faces = [
[Box_vertices[0], Box_vertices[1], Box_vertices[2], Box_vertices[3]],
[Box_vertices[0], Box_vertices[1], Box_vertices[5], Box_vertices[4]],
[Box_vertices[0], Box_vertices[3], Box_vertices[7], Box_vertices[4]],
[Box_vertices[1], Box_vertices[2], Box_vertices[6], Box_vertices[5]],
[Box_vertices[2], Box_vertices[3], Box_vertices[7], Box_vertices[6]],
[Box_vertices[5], Box_vertices[6], Box_vertices[7], Box_vertices[4]]
]
ax.add_collection3d(Poly3DCollection(Box_faces, facecolors="bisque", linewidths=1, edgecolors="darkorange"))
plt.show()
Спасибо за вашу помощь