Как исправить наложение ошибок формы в mpl_toolkits.mplot3d? - PullRequest
0 голосов
/ 26 мая 2019

Я пытаюсь отобразить поле на плоскости с помощью 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()

Спасибо за вашу помощь

...