Effacer les filtres
Effacer les filtres

Convert x,y,z data to surface matrices(2D array)

18 vues (au cours des 30 derniers jours)
Arash Hajisharifi
Arash Hajisharifi le 6 Oct 2019
Commenté : darova le 8 Oct 2019
Hello Everyone
i have an isosurfcae , the output of isosurfcae function is:
vertices: (27812x3)
faces:(55620x3)
so x ,y and z of this isosurface are: x=vertices(:,1), x=vertices(:,2),z=vertices(:,3)
i need to convert the vertices of this isosurface to 3 array of 2D matrices, somthing like
XX(:,:) YY(:,:) ZZ(:,:)
because there is a kernel in matlab which is called surfature to calculate curvature of a surface.the input of this function is 3 arrays of 2D matrices as x,y,z.
does anyone know how to do it?
  2 commentaires
darova
darova le 6 Oct 2019
What about griddata? Can you show the surface?
Arash Hajisharifi
Arash Hajisharifi le 7 Oct 2019
Modifié(e) : Arash Hajisharifi le 8 Oct 2019
consider a sphere , which i extracted the data from isosurface function.
also i have attached the output of isosurface(which is a structure) that is called results.mat

Connectez-vous pour commenter.

Réponse acceptée

darova
darova le 7 Oct 2019
Make new mesh in spherical
V = p.vertices;
for i = 1:3
V(:,i) = V(:,i)-mean(V(:,i)); % move to origin
end
% convert to spherical coordinates
[t1,p1,r1] = cart2sph(V(:,1),V(:,2),V(:,3));
% create new mesh (2D matrices)
tt = linspace(min(t1),max(t1),100);
pp = linspace(min(p1),max(p1),100);
[P,T] = meshgrid(pp,tt);
R = griddata(p1,t1,r1,P,T);
% convert to cartesian
[X,Y,Z] = sph2cart(T,P,R);
hold on
h1 = surf(X,Y,Z);
% set(h1,'EdgeColor','none')
hold off
camlight
axis equal
Little issue
img1.png
  2 commentaires
Arash Hajisharifi
Arash Hajisharifi le 8 Oct 2019
thank you so much for your anwer, it worked,
but is there a way to convert it directly without transfering to spherical coordinating and then transfer it back again to cartesian coordinate?
darova
darova le 8 Oct 2019
There are no other ways. This is the only one (and the best)

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by