Функция 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 возможные дубликаты, но это не то же самое и не имеет ответа.

0 ответов

Другие вопросы по тегам