Рендеринг патчей 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 или с помощью веб-интерфейса.