你已经派生过 em3d-mt
镜像自地址
https://gitee.com/sduem/em3d-mt.git
已同步 2025-08-03 11:26:50 +08:00
79 行
2.3 KiB
Matlab
79 行
2.3 KiB
Matlab
function []=Create_VTK(x,y,z,value,VTK_file_name,type,cells)
|
|
fid=fopen(VTK_file_name,'w');
|
|
|
|
%% header
|
|
header{1}='# vtk DataFile Version 3.0';
|
|
header{2}=['VTK_3D_Pseudo test'];
|
|
header{3}='ASCII';
|
|
if strcmp(type,'Line')|| strcmp(type,'line')|| strcmp(type,'LINE')
|
|
header{4}='DATASET POLYDATA';
|
|
else
|
|
header{4}='DATASET UNSTRUCTURED_GRID';
|
|
end
|
|
header{5}=['POINTS ',num2str(size(x,1)),' double'];
|
|
for i=1:5
|
|
fprintf(fid,'%s\n',header{i});
|
|
end
|
|
%% point positions
|
|
% for i=1:size(x,1)
|
|
% fprintf(fid,'%f %f %f\n',x(i),y(i),z(i));
|
|
% end
|
|
disp('writing positions')
|
|
fprintf(fid,'%6.2f %6.2f %6.2f\n',[x,y,z]');
|
|
% dlmwrite(VTK_file_name,[x y z],'-append','delimiter','\t','precision','%.1f')
|
|
|
|
%% cells or lines
|
|
fid=fopen(VTK_file_name,'a');
|
|
if strcmp(type,'Line')|| strcmp(type,'line')|| strcmp(type,'LINE')
|
|
header{6}=['LINES ','1',' ',num2str(size(x,1)+1)];
|
|
else
|
|
header{6}=['CELLS ',num2str(size(cells,1)),' ',num2str(5*size(cells,1))];
|
|
end
|
|
fprintf(fid,'%s\n',header{6});
|
|
|
|
% cells(:,2)=[0:1:size(x,1)-1];
|
|
Line_data=[size(x,1) 0:1:size(x,1)-1];
|
|
if strcmp(type,'Line')|| strcmp(type,'line')|| strcmp(type,'LINE')
|
|
for i=1:size(x,1)+1
|
|
fprintf(fid,'%d\t',Line_data(i));
|
|
end
|
|
else
|
|
% for i=1:size(x,1)
|
|
% fprintf(fid,'%d %d\n',cells(i,1),cells(i,2));
|
|
% end
|
|
disp('writting cells')
|
|
cells=[4*ones(size(cells,1),1),cells];
|
|
fprintf(fid,'%i %i %i %i %i\n',cells');
|
|
% dlmwrite(VTK_file_name,cells,'-append','delimiter','\t','precision','%i')
|
|
end
|
|
|
|
|
|
%% cells types
|
|
if strcmp(type,'Line')||strcmp(type,'line')||strcmp(type,'LINE')
|
|
return
|
|
end
|
|
fid=fopen(VTK_file_name,'a');
|
|
header{7}=['CELL_TYPES ',num2str(size(cells,1))];
|
|
fprintf(fid,'%s\n',header{7});
|
|
cells=10*ones(size(cells,1),1);
|
|
% for i=1:size(x,1)
|
|
disp('writting cells type')
|
|
% fprintf(fid,'%d\n',cells(i,1));
|
|
fprintf(fid,'%i\n',cells');
|
|
% dlmwrite(VTK_file_name,cells,'-append','delimiter','\t')
|
|
% end
|
|
|
|
%% values
|
|
fid=fopen(VTK_file_name,'a');
|
|
header{8}=['CELL_DATA ',num2str(size(cells,1))];
|
|
header{9}='SCALARS value double 1';
|
|
header{10}='LOOKUP_TABLE default';
|
|
for i=8:10
|
|
fprintf(fid,'%s\n',header{i});
|
|
end
|
|
disp('writting cell data')
|
|
fprintf(fid,'%i\n',value');
|
|
% dlmwrite(VTK_file_name,value,'-append','delimiter','\t')
|
|
fclose all;
|
|
disp('done')
|