How can I create a Delanay point in a cube?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Chenglin Li
el 30 de Jul. de 2022
Comentada: Chenglin Li
el 3 de Ag. de 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 :)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1082845/image.png)
0 comentarios
Respuesta aceptada
Bruno Luong
el 30 de Jul. de 2022
Editada: Bruno Luong
el 30 de Jul. de 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 comentarios
Bruno Luong
el 3 de Ag. de 2022
Editada: Bruno Luong
el 3 de Ag. de 2022
You always speak about "triangles" as if you want to mesh the surface and not the volume.
Más respuestas (1)
Shivam
el 30 de Jul. de 2022
To triangulate a 3D point cloud you need the BallPivoting algorithm:
https://vgc.poly.edu/~csilva/papers/tvcg99.pdf
Ver también
Categorías
Más información sobre Geometry and Mesh en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!