Я хотел бы сделать несколько графиков, чтобы помочь некоторым ученикам исчисления, которые я наставляю, лучше визуализировать твердые тела, которые они находят в объеме. Например, одна проблема заключается в том, чтобы найти объем треугольной пирамиды.Сделать каркасный многоугольник
Ниже приведен какой-то рабочий код, который генерирует стороны пирамиды, но вы не можете сказать, где заканчивается одна сторона, а другая начинается. Как я могу превратить это в каркас, чтобы сделать его более узнаваемым? Или, альтернативно, как я могу покрасить поверхности разных цветов, чтобы сделать фигуру более заметной?
В частности, я не понимаю, как я мог бы сделать треугольную сетку сетки. В качестве альтернативы, я думаю, что создание линий, которые соединяются с каждой точкой, было бы достаточно.
import numpy as np
import matplotlib.pyplot as plot
from mpl_toolkits.mplot3d import Axes3D
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
fig = plot.figure()
ax = Axes3D(fig)
A=[0,0,0]
B=[1,1,0]
C=[0,1,1]
D=[0,1,0]
verts=[[A,B,C],
[A,B,D],
[A,D,C],
[B,C,D]]
ax.add_collection3d(Poly3DCollection(verts))
ax.view_init(azim=-45)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plot.show()
Полученная цифра:
г. Второго картина у вас есть именно то, что я хочу. Когда я добавляю 'lw = 2' и' alpha = .5' в свой код, график не изменяется. Вы знаете, почему это может произойти? –
@ K.Shores А вы просто добавляете его к созданию 'Poly3DCollection'? – Suever
Да. Я изменил строку из этого 'ax.add_collection3d (Poly3DCollection (verts))' to 'ax.add_collection3d (Poly3DCollection (verts, lw = 2, alpha = .5))'. –