Функция matlab surf в формате VTK
У меня есть следующий код Matlab:
clear all
close all
clc
np = 10; % number of points along cylinder height
nc = 15; % points in circumference
h = 5.; % cylinder height
r = 1.; % cylinder radius
t = linspace(0, 2*pi, nc); % angle in rad
dh = h/(np-1); % height difference between two points
for i = 1:np
for j = 1:nc
x(i,j) = r*cos(t(j));
y(i,j) = r*sin(t(j));
z(i,j) = (i-1) * dh;
end
end
% a colormap for reference, i am using sthing else in my code
f = sqrt(x.^2 + y.^2 + z.^2);
subplot(1,2,1)
surf(x,y,z,f)
axis equal
subplot(1,2,2)
mesh(x,y,z,f)
axis equal
Это создает сетку из цилиндрической формы. Теперь я могу преобразовать этот файл сетки в формат STL с помощью этого скрипта, введя команду surf2stl('test.stl',x,y,z,'ascii')
и могу открыть его с помощью paraview.
Но в этом случае, если он все еще теряет карту цветов (переменная f из сценария matlab). То, что я хочу, это либо возможность иметь stl с затененными поверхностями. ИЛИ я бы предпочел, если бы я мог экспортировать эту сетку в формат файла VTK, но я не знаю как. Поэтому я смотрю, как преобразовать данные серфинга или сетки в Matlab в формат VTK. (редактировать: или третий вариант для преобразования сетки Matlab в STL, а затем преобразовать STL в VTK и добавить скалярное F в файл VTK).
Я сначала искал в stackru возможные дубликаты, но это не то же самое и не имеет ответа.