Changeset 3114
- Timestamp:
- 02/24/10 10:37:19 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/m/classes/public/plot/plot_segments.m
r2439 r3114 10 10 subplot(width,width,i); 11 11 12 %units 13 if exist(options,'unit'), 14 unit=getfieldvalue(options,'unit'); 15 md.x=md.x*unit; 16 md.y=md.y*unit; 17 md.z=md.z*unit; 18 end 19 12 %process mesh and data 13 [x y z elements is2d]=processmesh(md,options); 20 14 segments=md.segments; 21 15 22 length=sqrt( (md.x(segments(:,1))-md.x(segments(:,2))).^2 + (md.y(segments(:,1))-md.y(segments(:,2))).^2 ); 23 %normal(:,1)=cos(atan2( (md.x(segments(:,1))-md.x(segments(:,2))) , (md.y(segments(:,2))-md.y(segments(:,1))) ) ); 24 %normal(:,2)=sin(atan2( (md.x(segments(:,1))-md.x(segments(:,2))) , (md.y(segments(:,2))-md.y(segments(:,1))) ) ); 16 if strcmpi(md.type,'2d'), 17 %plot mesh 18 A=elements(:,1); B=elements(:,2); C=elements(:,3); 19 h1=patch( 'Faces', [A B C], 'Vertices', [x y z],'FaceVertexCData', [1 1 1],'FaceColor','none','EdgeColor','black'); 20 hold on; 25 21 26 if strcmpi(md.type,'2d'), 27 for n=1:size(segments,1), 22 %highlight elements on neumann 23 pos=segments(:,end); 24 A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); 25 h2=patch( 'Faces', [A B C], 'Vertices', [x y z],'FaceVertexCData', [1 1 1],'FaceColor','green','EdgeColor','black'); 28 26 29 plot(md.x(segments(n,1:2)),md.y(segments(n,1:2)),'b-','linewidth',2); 30 hold on 31 plot(md.x(segments(n,1:2)),md.y(segments(n,1:2)),'r.','markersize',12); 32 33 %xstart=mean(md.x(segments(n,1:2))); 34 %ystart=mean(md.y(segments(n,1:2))); 35 36 %xend=xstart+length(n)*normal(n,1); 37 %yend=ystart+length(n)*normal(n,2); 38 39 %plot([xstart xend],[ystart yend],'r-') 40 legend('element edges on ice front','grids on ice front','normal vectors') 41 end 27 %display arrows pointing outward 28 xstart=mean(x(segments(:,1:end-1)),2); 29 ystart=mean(y(segments(:,1:end-1)),2); 30 length=sqrt((x(segments(:,1))-x(segments(:,2))).^2 + (y(segments(:,1))-y(segments(:,2))).^2 ); 31 normal(:,1)=cos(atan2((x(segments(:,1))-x(segments(:,2))) , (y(segments(:,2))-y(segments(:,1))))); 32 normal(:,2)=sin(atan2((x(segments(:,1))-x(segments(:,2))) , (y(segments(:,2))-y(segments(:,1))))); 33 xend=xstart+length.*normal(:,1); 34 yend=ystart+length.*normal(:,2); 35 q=quiver(xstart,ystart,xend-xstart,yend-ystart); hold on; 36 h3=plot(xstart,ystart,'r*'); 42 37 else 43 38 error('plot_segments: 3d plot of segments not supported yet!'); 44 39 end 40 41 %legend (disable warnings) 42 warning off 43 legend([h2,q],'element on segment','normal vectors') 44 warning on 45 45 46 46 %apply options
Note:
See TracChangeset
for help on using the changeset viewer.