subtri(F,V,n,unique​Opt)

Sub-triangulates patch format data. Can be used to increase the density of triangulated data
960 téléchargements
Mise à jour 28 avr. 2015

Afficher la licence

[Fs,Vs]=subtri(F,V,n,uniqueOpt);
Sub-triangulates the triangles defined by the patch format data F (faces) and V (vertices). Can be used to increase the density of triangulated data.

Sub-triangulates the triangles defined by the patch format data F (faces) and V (vertices). Creates n addition points on the edges of the initial triangles, thus it creates (n+1).^2 triangles per original triangle. Two methods are implemented one which iteratively splits edges and can thus only be used if log2(n+1) is a positive integer. This method guarantees that all points are unique. If log2(n+1) is not a positive integer points are seeded on all edges initially creating non-unique points. However if uniqueOpt is 1 (default if not provided) these points are suppressed using the unique command (based on rounding of coordinates to 5th decimal place after edge length based scaling).

%% EXAMPLE
[X,Y] = meshgrid(linspace(-10,10,15));
Z = sinc(sqrt((X/pi).^2+(Y/pi).^2));
F = delaunay(X,Y); V=[X(:) Y(:) Z(:)]; C=mean(Z(F),2);

n=2;
[Fs,Vs]=subtri(F,V,n);
Vs(:,3)=sinc(sqrt((Vs(:,1)/pi).^2+(Vs(:,2)/pi).^2)); Z=Vs(:,3);Cs=mean(Z(Fs),2);

figure('units','normalized','Position',[0 0 1 1],'Color','w'); colordef('white');
subplot(1,2,1);patch('Faces',F,'Vertices',V,'FaceColor','flat','CData',C,'FaceAlpha',0.5,'EdgeColor','k','LineWidth',2); hold on;
axis tight; axis square; grid on; hold on; view(3); axis off;
title('Original','FontSize',20);
subplot(1,2,2);patch('Faces',Fs,'Vertices',Vs,'FaceColor','flat','CData',Cs,'FaceAlpha',0.5,'EdgeColor','k','LineWidth',0.5); hold on;
axis tight; axis square; grid on; hold on; view(3); axis off;
title(['n=',num2str(n)],'FontSize',20);

Citation pour cette source

Kevin Moerman (2024). subtri(F,V,n,uniqueOpt) (https://www.mathworks.com/matlabcentral/fileexchange/28277-subtri-f-v-n-uniqueopt), MATLAB Central File Exchange. Récupéré le .

Compatibilité avec les versions de MATLAB
Créé avec R2015a
Compatible avec toutes les versions
Plateformes compatibles
Windows macOS Linux
Catégories
En savoir plus sur Delaunay Triangulation dans Help Center et MATLAB Answers

Community Treasure Hunt

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

Start Hunting!
Version Publié le Notes de version
1.3.0.0

Updated with splitting method (faster)

1.2.0.0

Fixed normal direction and reference to missing function

1.1.0.0

Fixed instability due to "unique" function. Removed dependency on linspacen function which I did not upload.

1.0.0.0