How can I create a Delanay point in a cube?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Chenglin Li
le 30 Juil 2022
Commenté : Chenglin Li
le 3 Août 2022
I want to generate Mesh for a cube,but the points inside the cube can only be regularly distributed so far, and I want the surface and volume meshes to be regular triangles and regular tetrahedra.Matlab only. What do I need to do?
I would appreciate some help :)
0 commentaires
Réponse acceptée
Bruno Luong
le 30 Juil 2022
Modifié(e) : Bruno Luong
le 30 Juil 2022
A cube can be devided in 6 tetrahedra
nx=4;
ny=3;
nz=2;
grid = arrayfun(@(n)linspace(0,n,n+1),[nx,ny,nz], 'unif', 0);
[grid{:}] = ndgrid(grid{:});
grid = cat(4,grid{:});
grid = reshape(grid,[],3);
Tcube = [...
5, 1, 3, 2;
7, 5, 3, 2;
7, 6, 5, 2;
7, 4, 6, 2;
7, 3, 4, 2;
7, 8, 6, 4];
[Tx, Ty, Tz]=ind2sub([2 2 2],Tcube);
Tx = Tx-1;
Ty = Ty-1;
Tz = Tz-1;
C = zeros([nx,ny,nz,size(Tcube)]);
for k=1:nz
for j=1:ny
for i=1:nx
Cijk = sub2ind([nx,ny,nz]+1,i+Tx,j+Ty,k+Tz);
C(i,j,k,:,:) = reshape(Cijk,[1,1,1,size(Tcube)]);
end
end
end
C = reshape(C, [], 4);
TR = triangulation(C,grid);
% Graphical plot
patch('Faces', TR.ConnectivityList, 'Vertices', TR.Points,'FaceColor', 'g', 'FaceAlpha', 0.5);
view(3);
axis equal
7 commentaires
Bruno Luong
le 3 Août 2022
Modifié(e) : Bruno Luong
le 3 Août 2022
You always speak about "triangles" as if you want to mesh the surface and not the volume.
Plus de réponses (1)
Shivam
le 30 Juil 2022
To triangulate a 3D point cloud you need the BallPivoting algorithm:
https://vgc.poly.edu/~csilva/papers/tvcg99.pdf
Voir également
Catégories
En savoir plus sur Geometry and Mesh dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!