发布网友 发布时间:2022-10-28 08:11
共1个回答
热心网友 时间:2023-10-03 20:34
[M N P]=meshgrid(-1:0.1:1);追答[M N P]=meshgrid(-1:0.1:1);
s_colon=M.^2+N.^2+P.^2-1;
%由于没有你的数据,这里简单构造了M,N,P,s_colon数据作为测试数据
%----------------------------------这段是你原来的代码
h=isosurface(M,N,P,s_colon);
t=patch(h);
set(t,'FaceColor','red','EdgeColor','none');
view(3);
camlight;
lighting gouraud;
%-----------------------------------
%由于你的数据只有h,也就是三角网格,而你的格式中还有网格法向量的数据
%所以要先计算网格点处的法向量
n=isonormals(M,N,P,s_colon,t);
l=size(h.vertices,1);
fid=fopen('文件名.txt','w');
for ii=1:l
vd=h.vertices(ii,:);
nd=n(ii,:);
nd=nd/sqrt(sum(nd.^2));
fprintf(fid,'Vertex %d %7f %7f %7f {wid=%d normal=(%.8f %.8f %.8f)}\r\n',...
ii,vd(1),vd(2),vd(3),ii,nd(1),nd(1),nd(3));
end
fclose(fid);
热心网友 时间:2023-10-03 20:34
[M N P]=meshgrid(-1:0.1:1);追答[M N P]=meshgrid(-1:0.1:1);
s_colon=M.^2+N.^2+P.^2-1;
%由于没有你的数据,这里简单构造了M,N,P,s_colon数据作为测试数据
%----------------------------------这段是你原来的代码
h=isosurface(M,N,P,s_colon);
t=patch(h);
set(t,'FaceColor','red','EdgeColor','none');
view(3);
camlight;
lighting gouraud;
%-----------------------------------
%由于你的数据只有h,也就是三角网格,而你的格式中还有网格法向量的数据
%所以要先计算网格点处的法向量
n=isonormals(M,N,P,s_colon,t);
l=size(h.vertices,1);
fid=fopen('文件名.txt','w');
for ii=1:l
vd=h.vertices(ii,:);
nd=n(ii,:);
nd=nd/sqrt(sum(nd.^2));
fprintf(fid,'Vertex %d %7f %7f %7f {wid=%d normal=(%.8f %.8f %.8f)}\r\n',...
ii,vd(1),vd(2),vd(3),ii,nd(1),nd(1),nd(3));
end
fclose(fid);