summaryrefslogtreecommitdiff
path: root/texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Partcrv.sci
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2017-10-14 11:43:11 +0900
committerNorbert Preining <norbert@preining.info>2017-10-14 11:43:11 +0900
commitdc71274f16f7ff65145e034900f582b62453a033 (patch)
treea71452364cbe1a03feb6a84cdfd09eedae861590 /texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Partcrv.sci
parentaecda53b09be64698e9e5dcbf40f0fe289b37e2e (diff)
rename and update ketpic -> ketcindy
Diffstat (limited to 'texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Partcrv.sci')
-rw-r--r--texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Partcrv.sci42
1 files changed, 42 insertions, 0 deletions
diff --git a/texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Partcrv.sci b/texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Partcrv.sci
new file mode 100644
index 00000000..0b4844df
--- /dev/null
+++ b/texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Partcrv.sci
@@ -0,0 +1,42 @@
+// 08.05.31
+// 09.03.06
+
+function Ans=Partcrv(A,B,PkL)
+ Eps=10.0^(-3);
+ if type(A)==1 & length(A)==1
+ // new part from
+ if A>B+Eps
+ Npt=Numptcrv(PkL);
+ Out1=Partcrv(A,Npt,PkL);
+ Out2=Partcrv(1,B,PkL);
+ Tmp=Ptstart(PkL)-Ptend(PkL);
+ if norm(Tmp)<Eps
+ Ans=Joincrvs(Out1,Out2);
+ else
+ Ans=Mix(Out1,Out2);
+ end;
+ return;
+ end;
+ // to here
+ Is=ceil(A);
+ Ie=floor(B);
+ PL=[];
+ if A<Is-Eps
+ P=(Is-A)*PkL(Is-1,:)+(1-Is+A)*PkL(Is,:);
+ PL=[P];
+ end
+ PL=[PL;PkL(Is:Ie,:)];
+ if B>Ie+Eps
+ P=(1-B+Ie)*PkL(Ie,:)+(B-Ie)*PkL(Ie+1,:);
+ PL=[PL;P]
+ end
+ Ans=PL;
+ return
+ end;
+ Tmp=Nearestpt(A,PkL);//
+ Ta=Op(2,Tmp);//
+ Tmp=Nearestpt(B,PkL);//
+ Tb=Op(2,Tmp);//
+ Ans=Partcrv(Ta,Tb,PkL);//
+endfunction;
+