Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function meshBoundaries(V, F)
- M = zeros(size(V,1));
- for i = 1:size(F,1)
- if F(i,1)<F(i,2)
- M(F(i,1), F(i,2)) = M(F(i,1),F(i,2))+1;
- else
- M(F(i,2), F(i,1)) = M(F(i,2),F(i,1))+1;
- end
- if F(i,2)<F(i,3)
- M(F(i,2), F(i,3)) = M(F(i,2),F(i,3))+1;
- else
- M(F(i,3), F(i,2)) = M(F(i,3),F(i,2))+1;
- end
- if F(i,3)<F(i,1)
- M(F(i,3), F(i,1)) = M(F(i,3),F(i,1))+1;
- else
- M(F(i,1), F(i,3)) = M(F(i,1),F(i,3))+1;
- end
- end
- trisurf(F,V(:,1),V(:,2),V(:,3))
- for row = 1:size(M,1)
- for col = 1:size(M,2)
- if M(row,col) == 1
- hold on;
- plot3([V(row,1); V(col,1)], [V(row,2); V(col,2)], [V(row,3); V(col,3)], 'r')
- end
- end
- end
- end
- function printOff(filename)
- [V, F] = readOff(filename)
- trimesh(F,V(:,1),V(:,2),V(:,3))
- axis equal;
- end
- function [V,F] = readOff(filename)
- fid = fopen(filename,'r');
- str = fgets(fid);
- p = fscanf(fid,'%d %d %d\n', 3);
- V = fscanf(fid,'%f %f %f\n', [3 p(1)]);
- V=V';
- F = fscanf(fid,'%d %d %d %d\n', [4 p(2)]);
- F=F(2:4,:)+1;
- F=F';
- fclose(fid);
- end
- [V, F] = readOff('screwdriver.off')
- meshBoundaries(V,F)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement