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

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

merged trunk-jpl and trunk for revision 13974

File size: 967 bytes
Line 
1function normal_node=expcontract(newfile,oldfile,distance)
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
9contour=expread(oldfile);
10num=numel(contour.x);
11
12normal=zeros(num-1,2);
13normal_node=zeros(num-1,2);
14
15for i=1:num-1,
16 normal(i,:)=[ contour.y(i)-contour.y(i+1) contour.x(i+1)-contour.x(i)];
17 normal(i,:)=normal(i,:)/sqrt(normal(i,1)^2+normal(i,2)^2);
18end
19
20normal_node(2:end,:)=[normal(1:end-1,:)+normal(2:end,:)];
21normal_node(1,:)=normal(1,:)+normal(end,:);
22
23normal_node_norm=sqrt(normal_node(:,1).^2+normal_node(:,2).^2);
24normal_node(:,1)=normal_node(:,1)./normal_node_norm;
25normal_node(:,2)=normal_node(:,2)./normal_node_norm;
26
27contour.x(1:end-1)=contour.x(1:end-1)+distance*normal_node(:,1);
28contour.y(1:end-1)=contour.y(1:end-1)+distance*normal_node(:,2);
29
30contour.x(end)=contour.x(1);
31contour.y(end)=contour.y(1);
32
33expwrite(contour,newfile);
Note: See TracBrowser for help on using the repository browser.