У меня есть сетка, хранящаяся как набор трехмерных граней и вершин, например,
v = np.array([[0,0,0],
[1,0,0],
[1,1,0],
[0,1,0],
[0,0,1],
[1,0,1],
[1,1,1],
[0,1,1]])
f = np.array([[0,2,1],
[0,3,2],
[1,2,6],
[1,6,5],
[0,5,4],
[0,1,5],
[4,5,6],
[6,7,4],
[3,7,6],
[6,2,3],
[0,4,7],
[7,3,0]])
Где v
описывает координаты узлов, а f
- индекс вершин каждой грани.
У меня есть вектор C
, содержащий скаляр в каждом узле, например
C = np.array([1,2,3,4,5,6,7,8])
Я бы хотел построить это как меш, используя скаляр в C
в качестве карты цветов для каждого узла. Это похоже на то, что достигается в Matlab с помощью команды patch('Faces',F,'Vertices',V)
( doc )
Возможно ли достичь этого с помощью matplotlib или, в более общем смысле, с помощью python?
БОНУСНЫЙ ВОПРОС:
В более общем случае мои лица могут иметь переменное количество вершин. В моей матрице есть три и четыре грани, где три дополняется np.nan в качестве четвертого узла.
Можно ли построить сетку с 3-х и 4-х сторонними гранями, не разбивая четырехугольники на три?