Changeset 1217


Ignore:
Timestamp:
07/02/09 15:41:44 (16 years ago)
Author:
Eric.Larour
Message:

New plot_segment on neumann

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/m/classes/public/plot/plot_segmentonneumann.m

    r1125 r1217  
    1010subplot(width,width,i);
    1111
    12 %units
    1312if ~isnan(options_structure.unitmultiplier),
    1413        md.x=md.x*options_structure.unitmultiplier;
     
    2625
    2726if strcmpi(md.type,'2d'),
    28         disp('Careful, max loop is 100 for segmentonneumann plot. This is due to the heavy computational ressources needed by this routine. Uncomment next line if full plot is desired.');
    29         for n=1:100,
    30         %for n=1:size(segmentonneumann,1),
    3127
    32                 plot(md.x(segmentonneumann(n,1:2)),md.y(segmentonneumann(n,1:2)),'b-','linewidth',2);
    33                 hold on
    34                 plot(md.x(segmentonneumann(n,1:2)),md.y(segmentonneumann(n,1:2)),'r.','markersize',12);
     28        A=md.elements(:,1); B=md.elements(:,2); C=md.elements(:,3);
     29        patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData', [1 1 1],'FaceColor','none','EdgeColor','black');
     30        hold on;
    3531
    36                 xstart=mean(md.x(segmentonneumann(n,1:2)));
    37                 ystart=mean(md.y(segmentonneumann(n,1:2)));
     32        pos=segmentonneumann(:,3);
     33        A=md.elements(pos,1); B=md.elements(pos,2); C=md.elements(pos,3);
     34        patch( 'Faces', [A B C], 'Vertices', [md.x md.y md.z],'FaceVertexCData', [1 1 1],'FaceColor','green','EdgeColor','black');
     35        hold on;
    3836
    39                 xend=xstart+length_icefront(n)*normal_icefront(n,1);
    40                 yend=ystart+length_icefront(n)*normal_icefront(n,2);
     37        x=md.x(md.segmentonneumann_diag(:,1:2))*[1;1]/2;
     38        y=md.y(md.segmentonneumann_diag(:,1:2))*[1;1]/2;
    4139
    42                 plot([xstart xend],[ystart yend],'r-')
    43                 legend('element edges on ice front','grids on ice front','normal vectors')
    44         end
     40        length=sqrt( (md.x(md.segmentonneumann_diag(:,1))-md.x(md.segmentonneumann_diag(:,2))).^2 + (md.y(md.segmentonneumann_diag(:,1))-md.y(md.segmentonneumann_diag(:,2))).^2 );
     41        normal(:,1)=cos(atan2( (md.x(md.segmentonneumann_diag(:,1))-md.x(md.segmentonneumann_diag(:,2))) , (md.y(md.segmentonneumann_diag(:,2))-md.y(md.segmentonneumann_diag(:,1))) ) );
     42        normal(:,2)=sin(atan2( (md.x(md.segmentonneumann_diag(:,1))-md.x(md.segmentonneumann_diag(:,2))) , (md.y(md.segmentonneumann_diag(:,2))-md.y(md.segmentonneumann_diag(:,1))) ) );
     43         
     44        xend=x+length.*normal(:,1);
     45        yend=y+length.*normal(:,2);
     46        quiver(x,y,xend-x,yend-y); hold on;
     47        plot(x,y,'r*');
     48        legend('element edges on ice front','grids on ice front','normal vectors')
    4549else
    4650        for n=1:size(segmentonneumann,1),
Note: See TracChangeset for help on using the changeset viewer.