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/Invparapt.sci | |
parent | aecda53b09be64698e9e5dcbf40f0fe289b37e2e (diff) |
rename and update ketpic -> ketcindy
Diffstat (limited to 'texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Invparapt.sci')
-rw-r--r-- | texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Invparapt.sci | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Invparapt.sci b/texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Invparapt.sci new file mode 100644 index 00000000..4d7863b1 --- /dev/null +++ b/texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Invparapt.sci @@ -0,0 +1,50 @@ +// 08.07.11 +// 08.08.17 +// 09.10.31 +// 09.11.12 + +function Out=Invparapt(varargin) + Eps=10^(-4); + Fk=varargin($); + NFk=Numptcrv(Fk) + Tmp=varargin(1); + if type(Tmp)==1 & size(Tmp)==1 + Ph=Tmp; + Fh=varargin(2); + else + Fh=Projpara(Fk); + if NFk>2 + Tmp1=Nearestpt(Tmp,Fh); + Ph=Tmp1(2); + else + Ah=Ptcrv(1,Fh); Bh=Ptcrv(2,Fh); + V1=Tmp-Ah; V2=Bh-Ah; + Tmp1=Crossprod(V1,V2); + if abs(Tmp1)>Eps + disp('Not on the line'); + Out=[]; + return; + else + Ph=Dotprod(V1,V2)/norm(V2)^2+1; // 09.11.12 + end; + end; + end; + if NFk>2 + N=Trunc(Ph); + S0=Ph-N; + if Ph>Numptcrv(Fh)-Eps + Out=list(Ptend(Fk),Numptcrv(Fh)); + return; + end; + else + N=1; + S0=Ph-1; // 09.11.12 + end; + Ak=Ptcrv(N,Fk); Bk=Ptcrv(N+1,Fk); + Ah=Ptcrv(N,Fh); Bh=Ptcrv(N+1,Fh); + Ph=(1-S0)*Ah+S0*Bh; + T2=S0; + Pk=(1-T2)*Ak+T2*Bk; + Out=list(Pk,N+T2); +endfunction + |