Рендеринг патчей MATLAB с Plotly fig2plotly()

Проблема. При попытке экспортировать полигон, отображаемый с помощью команды patch в MATLAB с помощью fig2plotly, на конечном выходе отсутствуют указанные цвета лица.

Возможно, демонстрация поможет. Возьмите следующие вершины и грани, чтобы определить куб (снятый с документации MATLAB):

vert = [0 0 0;1 0 0;1 1 0;0 1 0;0 0 1;1 0 1;1 1 1;0 1 1];
fac = [1 2 6 5;2 3 7 6;3 4 8 7;4 1 5 8;1 2 3 4;5 6 7 8];

И визуализируйте его с помощью команды patch, добавив некоторую информацию о цвете на лица:

patch('Vertices',vert,'Faces', fac, 'FaceVertexCData',hsv(8),'FaceColor','interp')

И просмотрите его в 3D:

view(3)
axis vis3d

Это дает хороший куб с интерполированными значениями цвета на поверхности.

nice cube

Теперь, если мы попытаемся экспортировать его в Plotly с помощью команды fig2plotly:

fig2plotly(gcf)

Он возвращает пустой куб (plotly link):

пустой куб

Другими словами, информация о линии была захвачена, но не грани. Даже если мы попытаемся сохранить стиль MATLAB, мы все равно потеряем информацию о лице:

fig2plotly(gcf, 'strip', false)

Любые предложения?

Ответ 1

В ver добавлена ​​улучшенная поддержка патчей. 2.2.9 обертки (https://github.com/plotly/MATLAB-Online).

Вы можете переключить эту улучшенную обработку исправлений, установив для параметра TriangulatePatch значение true в файле plotlyfig.m. (https://github.com/plotly/MATLAB-Online/blob/master/plotly/plotlyfig.m#L61)

Градиенты цвета еще не поддерживаются, но сами патчи теперь должны отображаться. Изменения цвета могут быть сделаны путем ручной модификации атрибутов объекта plotlyfig или с помощью веб-интерфейса.