私は次の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 で開くことができます。
しかし、その場合、それが stl の場合、カラーマップ (matlab スクリプトの f 変数) を失います。私が望むのは、シェーディングされたサーフェスを持つ stl を使用できるようにすることです。または、このメッシュを VTK ファイル形式にエクスポートできればよいのですが、方法がわかりません。そこで、matlab のサーフまたはメッシュ データを VTK 形式に変換する方法を探しています。(編集: または、matlab グリッドを stl に変換してから stl を vtk に変換し、スカラー f を vtk ファイルに追加する 3 番目のオプション)。
最初にスタックオーバーフローで重複の可能性を検索しましたが、これは同じではなく、答えがありません。