feat: surface
This commit is contained in:
parent
f7acb5a0b7
commit
ac8b9c337b
|
@ -56,7 +56,7 @@ m = 0.1;
|
|||
n = 3;
|
||||
seuil_E = 10;
|
||||
q_max = 5;
|
||||
ind_img = 5;
|
||||
ind_img = 1;
|
||||
|
||||
figure;
|
||||
% subplot(2, 2, 1);
|
||||
|
@ -130,16 +130,17 @@ plot(contour(:,2), contour(:,1), 'g', 'LineWidth', 3);
|
|||
% scatter(barycentres(:,2), barycentres(:,1));
|
||||
% % triplot(r, contour(:,2), contour(:,1));
|
||||
|
||||
[vx, vy] = voronoi(contour(:,1), contour(:,2));
|
||||
T = 10;
|
||||
[vx, vy] = voronoi(contour(1:T:end,1), contour(1:T:end,2));
|
||||
|
||||
plot(vy, vx, 'b');
|
||||
|
||||
|
||||
% Selection des segments qui ont leurs extrémités dans l'image
|
||||
ok = vx(1,:) > 0 & vx(1,:) < size(bw_img, 1) & ...
|
||||
vx(2,:) > 0 & vx(2,:) < size(bw_img, 1) & ...
|
||||
vy(1,:) > 0 & vy(1,:) < size(bw_img, 2) & ...
|
||||
vy(2,:) > 0 & vy(2,:) < size(bw_img, 2);
|
||||
ok = vx(1,:) > 1 & vx(1,:) < size(bw_img, 1) & ...
|
||||
vx(2,:) > 1 & vx(2,:) < size(bw_img, 1) & ...
|
||||
vy(1,:) > 1 & vy(1,:) < size(bw_img, 2) & ...
|
||||
vy(2,:) > 1 & vy(2,:) < size(bw_img, 2);
|
||||
vx = floor(vx(:,ok));
|
||||
vy = floor(vy(:,ok));
|
||||
|
||||
|
@ -331,6 +332,7 @@ for k = 1:nb_barycentres
|
|||
end
|
||||
|
||||
triBis = tri(to_save,:);
|
||||
nb_barycentres = length(to_save);
|
||||
|
||||
% A DECOMMENTER POUR AFFICHER LE MAILLAGE RESULTAT
|
||||
% Affichage des tetraedres restants
|
||||
|
@ -339,23 +341,4 @@ figure;
|
|||
tetramesh(triBis, T.Points);
|
||||
|
||||
% Sauvegarde des donnees
|
||||
% save donnees;
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% CONSEIL : A METTRE DANS UN AUTRE SCRIPT %
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% load donnees;
|
||||
% Calcul des faces du maillage à garder
|
||||
% FACES = ...;
|
||||
% ...
|
||||
|
||||
% fprintf('Calcul du maillage final termine : %d faces. \n',size(FACES,1));
|
||||
|
||||
% Affichage du maillage final
|
||||
% figure;
|
||||
% hold on
|
||||
% for i = 1:size(FACES,1)
|
||||
% plot3([X(1,FACES(i,1)) X(1,FACES(i,2))],[X(2,FACES(i,1)) X(2,FACES(i,2))],[X(3,FACES(i,1)) X(3,FACES(i,2))],'r');
|
||||
% plot3([X(1,FACES(i,1)) X(1,FACES(i,3))],[X(2,FACES(i,1)) X(2,FACES(i,3))],[X(3,FACES(i,1)) X(3,FACES(i,3))],'r');
|
||||
% plot3([X(1,FACES(i,3)) X(1,FACES(i,2))],[X(2,FACES(i,3)) X(2,FACES(i,2))],[X(3,FACES(i,3)) X(3,FACES(i,2))],'r');
|
||||
% end;
|
||||
save donnees;
|
37
TP_maillage_suite.asv
Normal file
37
TP_maillage_suite.asv
Normal file
|
@ -0,0 +1,37 @@
|
|||
load donnees;
|
||||
|
||||
% Calcul des faces du maillage à garder
|
||||
% nope = [];
|
||||
% for i = 1:nb_barycentres
|
||||
% tetra_i = T.Points(triBis(i, :), :);
|
||||
% for j = i+1:nb_barycentres
|
||||
% tetra_j = T.Points(triBis(j, :), :);
|
||||
% if size(unique([tetra_i; tetra_j], 'rows'), 1) < 6
|
||||
% for ki = 1:4
|
||||
% tri_ki = sort(triBis(i,[1:ki - 1 ki + 1:4]));
|
||||
% for kj = 1:4
|
||||
% tri_kj = sort(triBis(j,[1:kj - 1 kj + 1:4]));
|
||||
% if tri_ki == tri_kj
|
||||
% nope = [nope; i ki; j kj];
|
||||
% end
|
||||
% end
|
||||
% end
|
||||
% end
|
||||
% end
|
||||
% i
|
||||
% size(nope)
|
||||
% end
|
||||
FACES = [triBis(:, [2 3 4]); triBis(:, [1 3 4]); triBis(:, [1 2 4]); triBis(:, [1 2 3])];
|
||||
FACES = sortrows(FACES);
|
||||
FACESFACES(1:end-1, :) == FACES(2:end, :)
|
||||
|
||||
fprintf('Calcul du maillage final termine : %d faces. \n',size(FACES,1));
|
||||
|
||||
% Affichage du maillage final
|
||||
figure;
|
||||
hold on
|
||||
for i = 1:size(FACES,1)
|
||||
plot3([X(1,FACES(i,1)) X(1,FACES(i,2))],[X(2,FACES(i,1)) X(2,FACES(i,2))],[X(3,FACES(i,1)) X(3,FACES(i,2))],'r');
|
||||
plot3([X(1,FACES(i,1)) X(1,FACES(i,3))],[X(2,FACES(i,1)) X(2,FACES(i,3))],[X(3,FACES(i,1)) X(3,FACES(i,3))],'r');
|
||||
plot3([X(1,FACES(i,3)) X(1,FACES(i,2))],[X(2,FACES(i,3)) X(2,FACES(i,2))],[X(3,FACES(i,3)) X(3,FACES(i,2))],'r');
|
||||
end;
|
20
TP_maillage_suite.m
Normal file
20
TP_maillage_suite.m
Normal file
|
@ -0,0 +1,20 @@
|
|||
load donnees;
|
||||
|
||||
size(triBis)
|
||||
% Calcul des faces du maillage à garder
|
||||
FACES = [triBis(:, [2 3 4]); triBis(:, [1 3 4]); triBis(:, [1 2 4]); triBis(:, [1 2 3])];
|
||||
size(FACES)
|
||||
FACES = sortrows(FACES);
|
||||
rep = sum(FACES(1:end-1, :) == FACES(2:end, :), 2) < 3;
|
||||
FACES([0; rep] & [rep; 0], :) = [];
|
||||
|
||||
fprintf('Calcul du maillage final termine : %d faces. \n',size(FACES,1));
|
||||
|
||||
% Affichage du maillage final
|
||||
figure;
|
||||
hold on
|
||||
for i = 1:size(FACES,1)
|
||||
plot3([X(1,FACES(i,1)) X(1,FACES(i,2))],[X(2,FACES(i,1)) X(2,FACES(i,2))],[X(3,FACES(i,1)) X(3,FACES(i,2))],'r');
|
||||
plot3([X(1,FACES(i,1)) X(1,FACES(i,3))],[X(2,FACES(i,1)) X(2,FACES(i,3))],[X(3,FACES(i,1)) X(3,FACES(i,3))],'r');
|
||||
plot3([X(1,FACES(i,3)) X(1,FACES(i,2))],[X(2,FACES(i,3)) X(2,FACES(i,2))],[X(3,FACES(i,3)) X(3,FACES(i,2))],'r');
|
||||
end;
|
BIN
donnees.mat
Normal file
BIN
donnees.mat
Normal file
Binary file not shown.
15
fin.asv
Normal file
15
fin.asv
Normal file
|
@ -0,0 +1,15 @@
|
|||
load donnees;
|
||||
% Calcul des faces du maillage à garder
|
||||
% FACES = ...;
|
||||
% ...
|
||||
|
||||
% fprintf('Calcul du maillage final termine : %d faces. \n',size(FACES,1));
|
||||
|
||||
% Affichage du maillage final
|
||||
% figure;
|
||||
% hold on
|
||||
% for i = 1:size(FACES,1)
|
||||
% plot3([X(1,FACES(i,1)) X(1,FACES(i,2))],[X(2,FACES(i,1)) X(2,FACES(i,2))],[X(3,FACES(i,1)) X(3,FACES(i,2))],'r');
|
||||
% plot3([X(1,FACES(i,1)) X(1,FACES(i,3))],[X(2,FACES(i,1)) X(2,FACES(i,3))],[X(3,FACES(i,1)) X(3,FACES(i,3))],'r');
|
||||
% plot3([X(1,FACES(i,3)) X(1,FACES(i,2))],[X(2,FACES(i,3)) X(2,FACES(i,2))],[X(3,FACES(i,3)) X(3,FACES(i,2))],'r');
|
||||
% end;
|
Loading…
Reference in a new issue