0

私は次の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 番目のオプション)。

最初にスタックオーバーフローで重複の可能性を検索しましたが、これは同じではなく、答えがありません。

4

0 に答える 0