diff options
author | Norbert Preining <norbert@preining.info> | 2017-10-14 11:43:11 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2017-10-14 11:43:11 +0900 |
commit | dc71274f16f7ff65145e034900f582b62453a033 (patch) | |
tree | a71452364cbe1a03feb6a84cdfd09eedae861590 /texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Connectseg.sci | |
parent | aecda53b09be64698e9e5dcbf40f0fe289b37e2e (diff) |
rename and update ketpic -> ketcindy
Diffstat (limited to 'texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Connectseg.sci')
-rw-r--r-- | texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Connectseg.sci | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Connectseg.sci b/texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Connectseg.sci new file mode 100644 index 00000000..2abe8c90 --- /dev/null +++ b/texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Connectseg.sci @@ -0,0 +1,76 @@ +// 08.09.09 +// 08.09.10 +// 08.09.24 + +function PlotL=Connectseg(varargin) + Nargs=length(varargin); + Pdata=varargin(1); + Eps=10^(-5); + if Nargs>=2 + Eps=varargin(2) + end; + if Mixtype(Pdata)~=1 + Tmp=Mixop(1,Pdata); + Tmp=size(Tmp,2); + Sep=%inf*ones(1,Tmp); + Tmp=[]; + for I=1:Mixlength(Pdata) + Tmp1=Mixop(I,Pdata); + Tmp=[Tmp;Sep;Tmp1]; + end; + Pdata=Tmp(2:size(Tmp,1),:); + end; + Din=Dataindex(Pdata); + PlotL=[]; + Qd=Pdata(Din(1,1):Din(1,2),:); + Din=Din(2:size(Din,1),:); + N=size(Din,1); + while N>0 + Ah=Qd(1,:);Ao=Qd(size(Qd,1),:); + Flg=0; + for J=1:N + St=Din(J,1); + En=Din(J,2); + P=Pdata(St,:); + Q=Pdata(En,:); + if norm(P-Ao)<Eps + Tmp=Pdata(St+1:En,:); + Qd=[Qd;Tmp]; + Din=[Din(1:J-1,:);Din(J+1:N,:)]; + Flg=1; + break; + end; + if norm(Q-Ao)<Eps + Tmp=Pdata(En-1:-1:St,:); + Qd=[Qd;Tmp]; + Din=[Din(1:J-1,:);Din(J+1:N,:)]; + Flg=1; + break; + end; + if norm(P-Ah)<Eps + Tmp=Pdata(En:-1:St+1,:); + Qd=[Tmp;Qd]; + Din=[Din(1:J-1,:);Din(J+1:N,:)]; + Flg=1; + break; + end; + if norm(Q-Ah)<Eps + Tmp=Pdata(St:En-1,:); + Qd=[Tmp;Qd]; + Din=[Din(1:J-1,:);Din(J+1:N,:)]; + Flg=1; + break; + end; + end; + if Flg==0 + PlotL=Mixadd(PlotL,Qd); + Qd=Pdata(Din(1,1):Din(1,2),:); + Din=Din(2:N,:); + end; + N=size(Din,1); + end; + if size(Qd,1)>0 + PlotL=Mixadd(PlotL,Qd); + end; +endfunction + |