source: issm/trunk/src/m/exp/expcontract.m@ 13395

Last change on this file since 13395 was 13395, checked in by Mathieu Morlighem, 12 years ago

merged trunk-jpl and trunk for revision 13393

File size: 968 bytes
RevLine 
[8298]1function normal_node=expcontract(newfile,oldfile,distance)
[2317]2%EXPCONTRACT - contract or expand a profile, according to the normal.
3%
4% Usage:
5% expcontract(newfile,oldfile,distance)
6%
7% See also EXPMASTER, EXPDOC
8
9
[12691]10contour=expread(oldfile);
[2317]11num=numel(contour.x);
12
13normal=zeros(num-1,2);
[8298]14normal_node=zeros(num-1,2);
[2317]15
16for i=1:num-1,
17 normal(i,:)=[ contour.y(i)-contour.y(i+1) contour.x(i+1)-contour.x(i)];
18 normal(i,:)=normal(i,:)/sqrt(normal(i,1)^2+normal(i,2)^2);
19end
20
[8298]21normal_node(2:end,:)=[normal(1:end-1,:)+normal(2:end,:)];
22normal_node(1,:)=normal(1,:)+normal(end,:);
[2317]23
[8298]24normal_node_norm=sqrt(normal_node(:,1).^2+normal_node(:,2).^2);
25normal_node(:,1)=normal_node(:,1)./normal_node_norm;
26normal_node(:,2)=normal_node(:,2)./normal_node_norm;
[2317]27
[8298]28contour.x(1:end-1)=contour.x(1:end-1)+distance*normal_node(:,1);
29contour.y(1:end-1)=contour.y(1:end-1)+distance*normal_node(:,2);
[2317]30
31contour.x(end)=contour.x(1);
32contour.y(end)=contour.y(1);
33
34expwrite(contour,newfile);
Note: See TracBrowser for help on using the repository browser.