summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/scripts/ketcindy/ketlib
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-10-30 20:45:57 +0000
committerKarl Berry <karl@freefriends.org>2018-10-30 20:45:57 +0000
commit046ae60f6e5bda805763a12a2c95e3441e12e165 (patch)
treef59c0c846c1f5dc679ab5a91c48c1e9c6d867327 /Master/texmf-dist/scripts/ketcindy/ketlib
parent2f129be30d68dbd9f380bdee127b42eb060b9630 (diff)
ketcindy (30oct18)
git-svn-id: svn://tug.org/texlive/trunk@49030 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/scripts/ketcindy/ketlib')
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt50
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs1195
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt91
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs1892
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt61
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs959
-rwxr-xr-xMaster/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvhelpE.txt2
-rwxr-xr-xMaster/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvhelpJ.txt2
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt9
-rwxr-xr-xMaster/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs44
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt23
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs248
-rwxr-xr-xMaster/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r796
-rwxr-xr-xMaster/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_rep2e.r40
14 files changed, 3652 insertions, 1760 deletions
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt
index 7dcdd198e91..3bfe1f09635 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dlogr.txt
@@ -1,3 +1,53 @@
+// 20181030
+// Mkpointlist debugged (workprocess adopted)
+// Parcrv3d, IntersectsgpL debugged
+// Ptonseg3d changed ( for non-geo point )
+// Drawpoint3d changed ( color option )
+// 20181029
+// Mkpointlist debugged
+// Subgraph change
+// 20181028
+// Start3d changed ( pt,ptz removed)
+// Mkpointlist, Xyzcoord changed
+// 20181027
+// IntersectsgpL changed ( return=[pt,isinseg,isinplane,tseg,t,s] )
+// Parasubpt, Mainsubpt, Mainsubptlog added
+// 20181026
+// IntersectsgpL changed ( option "ie" )
+// 20181017
+// Pointdata3d added (simillar to Pointdata)
+// 20181015
+// Mkpointlist debugged (vlistpre )
+// Start3d slightly changed
+// 20180916
+// Setangle debugged, Start3d changed ( PTEXCEPTION added)
+// 20180905
+// VertexEdgeFace changed (option "vtx=geo/nogeo" added)
+// 20180904
+// Color setting changed ( for KCOLOR)
+// 20180816
+// Nohiddenbyfaces debugged (spaceline dissolved to segments)
+// 20180815
+// Nohiddenseg,segs, byfaces debugged (Eps=10^(-2) added as option)
+// 20180811
+// IntersectsgpL debugged (Reflect3point->Reflectreflectpoint3d)
+// 20180809
+// Rotatepoint3d changed ( default center [0,0,0] added )
+// 20180808
+// Rotatedata3d, Translatedata3d, debugged
+// Reflectdata3d, Scaledata3d added
+// Scalepoint3d changed ( ratio )
+// 20180806
+// Rotatepoint3d, Translatepoint3d, Reflectpoint3d renamed from old
+// Scalepoint3d added
+// 20180729
+// Rotatedata3d, Reflectdata3d changed ( only these names are valid)
+// 20180722
+// color localized
+// 20180714
+// Nohiddenbyfaces debugged ( case where seglist is a string of a list of strings )
+// 20180712
+// Sfbdparadata,... renamed to SfbdparadataR,...
// 20180614
// Setangle changed (for angle list)
// 20180613
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs
index ffb4798b846..c5516db2888 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs
@@ -14,10 +14,11 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindylib3d(20180614) loaded");
+println("ketcindylib3d(20181030) loaded");
//help:start();
+////%Ketinit3d start////
Ketinit3d():=Ketinit3d(1);
Ketinit3d(sf):=(
regional(tmp);
@@ -26,7 +27,8 @@ Ketinit3d(sf):=(
Ketinit3d(sf,[-5,tmp-0.5,tmp-1]);
);
Ketinit3d(subflg,position):=(
-//help:Ketinit3d(subflg=1)
+//help:Ketinit3d();
+//help:Ketinit3d(0);
regional(ctr,tmp,tmp1,tmp2,tmp3,tmp4,xPos,yTh,yPh);
// println("KETCindy3d V.2.3.5(2016.02.03)");
BezierNumber3=1; //15.02.28
@@ -78,7 +80,9 @@ Ketinit3d(subflg,position):=(
TSIZEZ=10;
ErrFlg=0;
);
+////%Ketinit3d end////
+////%Start3d start////
Start3d():=Start3d([]);
Start3d(ptexception):=(
//help:Start3d();
@@ -140,57 +144,7 @@ Start3d(ptexception):=(
ChNum=1;
);
Ch=[0];
- );// 17.05.18until
- if(length(VLIST)==0, // 16.06.20
- tmp=remove(allpoints(),[NE,SW,TH,FI,O,X,Y,Z]);//17.06.02
- tmp4=remove(tmp,ptexception);
- forall(tmp4,pt,
- tmp1=text(pt);
- tmp=substring(tmp1,length(tmp1)-1,length(tmp1));
- if(tmp!="z",
- tmp=parse(tmp1+"z.y");
- pt3=Xyzcoord(pt.x,pt.y,tmp);
- Defvar(tmp1+"3d",pt3);
- pt2=Parapt(pt3); // 16.05.28from
- Defvar(tmp1+"2d",pt2); // 16.05.28until
- );
- );
- ,
- if(isselected(NE) % isselected(SW),
- tmp=remove(allpoints(),[NE,SW,TH,FI]);
- tmp4=remove(tmp,ptexception);
- forall(tmp4,pt,
- tmp1=text(pt);
- tmp=substring(tmp1,length(tmp1)-1,length(tmp1));
- if(tmp!="z",
- tmp=select(VLIST,#_1==tmp1+"3d"); //17.10.07
- pt3=tmp_1_2;
- tmp=tmp1+".xy=Parapt("+pt3+")_[1,2];";
- parse(tmp);
-// if(SUBSCR==1,
-// tmp=tmp1+"z"+".x=NE.x-SW.x+"+tmp1+".x";
-// parse(tmp);
-// );
- );
- );
- ,
- tmp=remove(allpoints(),[NE,SW,TH,FI]);
- tmp4=remove(tmp,ptexception);
- forall(tmp4,pt,
- tmp1=text(pt);
- tmp=substring(tmp1,length(tmp1)-1,length(tmp1));
- if(tmp!="z",
- tmp2=parse(tmp1+"z");
- if(isselected(pt) % isselected(tmp2),
- Defvar(tmp1+"2d",pt.xy);
- tmp=parse(tmp1+"z.y");
- tmp=Xyzcoord(pt.x,pt.y,tmp);
- Defvar(tmp1+"3d",tmp);
- );
- );
- );
- );
- );
+ );// 17.05.18to
if(SUBSCR==1,
xmn=SW.x+NE.x-SW.x;
xMx=NE.x+NE.x-SW.x;
@@ -206,10 +160,13 @@ Start3d(ptexception):=(
shadowc=[0,0,0,0.5]; mboxc="yellow"; //17.03.02 regional debugged
SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3,
letterc,mboxc,mboxc,mboxc,62,2,letterc];
- ThinDense=0.1; //17.07.01until
+ ThinDense=0.1; //17.07.01to
Ptseg3data(ptexception); //16.08.23
+ PTEXCEPTION=ptexception; //180916
);
+////%Start3d end////
+////%Setangle start////
Setangle(angL):=Setangle(ang_1,ang_2);//180614
Setangle(theta,phi):=( //16.12.24
//help:Setangle(60,30);
@@ -230,22 +187,22 @@ Setangle(theta,phi):=( //16.12.24
GLIST=append(GLIST,tmp);
if(length(VLIST)==0, // 16.06.20
tmp=remove(allpoints(),[NE,SW,TH,FI]);
- tmp4=remove(tmp,ptexception);
+ tmp4=remove(tmp,PTEXCEPTION); //180916
forall(tmp4,pt,
tmp1=text(pt);
tmp=substring(tmp1,length(tmp1)-1,length(tmp1));
if(tmp!="z",
- tmp=parse(tmp1+"z.y");
- pt3=Xyzcoord(pt.x,pt.y,tmp);
+ tmp=parse(tmp1+"z.xy"); //181028(2lines);
+ pt3=Xyzcoord(pt.xy,tmp);
Defvar(tmp1+"3d",pt3);
pt2=Parapt(pt3); // 16.05.28from
- Defvar(tmp1+"2d",pt2); // 16.05.28until
+ Defvar(tmp1+"2d",pt2); // 16.05.28to
);
);
,
if(isselected(NE) % isselected(SW),
tmp=remove(allpoints(),[NE,SW,TH,FI]);
- tmp4=remove(tmp,ptexception);
+ tmp4=remove(tmp,PTEXCEPTION); //180916
forall(tmp4,pt,
tmp1=text(pt);
tmp=substring(tmp1,length(tmp1)-1,length(tmp1));
@@ -258,7 +215,7 @@ Setangle(theta,phi):=( //16.12.24
);
,
tmp=remove(allpoints(),[NE,SW,TH,FI]);
- tmp4=remove(tmp,ptexception);
+ tmp4=remove(tmp,PTEXCEPTION); //180916
forall(tmp4,pt,
tmp1=text(pt);
tmp=substring(tmp1,length(tmp1)-1,length(tmp1));
@@ -266,8 +223,8 @@ Setangle(theta,phi):=( //16.12.24
tmp2=parse(tmp1+"z");
if(isselected(pt) % isselected(tmp2),
Defvar(tmp1+"2d",pt.xy);
- tmp=parse(tmp1+"z.y");
- tmp=Xyzcoord(pt.x,pt.y,tmp);
+ tmp=parse(tmp1+"z.xy"); //181028(2lines)
+ tmp=Xyzcoord(pt.xy,tmp);
Defvar(tmp1+"3d",tmp);
);
);
@@ -280,9 +237,11 @@ Setangle(theta,phi):=( //16.12.24
tmp=tmp1+"="+textformat(tmp2,5);
parse(tmp);
);
- Ptseg3data(ptexception);
+ Ptseg3data(PTEXCEPTION); //180916
);
+////%Setangle end////
+////%Getangle start////
Getangle():=getangle(["Disp=y"]); //180613from
Getangle(option):=(
regional(tmp,tmp1,dispflg,eqL);
@@ -301,10 +260,15 @@ Getangle(option):=(
);
tmp; //180607
); //180613to
+////%Getangle end////
-isAngle():=Isangle(); //180517
+////%Angleselected start////
+Angleselected():=IsAngle(); //180713
+//isAngle():=Isangle(); //180517
Isangle():=isselected(TH)%isselected(FI); //180517
+////%Angleselected end////
+////%Changestyle3d start////
Changestyle3d(nameL,style):=(
//help:Changestyle3d(["geoseg3d","ax3d"],["notex"]);
regional(nmL,name,tmp,tmp1,tmp2);
@@ -325,7 +289,9 @@ Changestyle3d(nameL,style):=(
);
);
);
+////%Changestyle3d end////
+////%Dist3d start////
Dist3d(pt1):=Dist3d(pt1,[0,0,0]);
Dist3d(pt1,pt2):=(
//help:Dist3d(A3d,B3d);
@@ -346,6 +312,7 @@ Dist3d(pt1,pt2):=(
);
sqrt((p2-p1)*(p2-p1));
);
+////%Dist3d end////
Findangle(vec):=(
//help:Findangle([2,1,4]);
@@ -376,19 +343,24 @@ Cancoordpara(pc):=(
[tmp1,tmp2,tmp3];
);
+////%Zparapt start////
Zparapt(cc):=(
regional(x,y,z);
x=cc_1; y=cc_2; z=cc_3;
x*cos(PHI)*sin(THETA)+y*sin(PHI)*sin(THETA)+z*cos(THETA);
);
+////%Zparapt end////
+////%Projcoordpara start////
Projcoordpara(cc):=(
//help:Projcoordpara([3,1,2]);
regional(tmp);
tmp=Parapt(cc);
[tmp_1,tmp_2,Zparapt(cc)];
);
+////%Projcoordpara end////
+////%Parapt start////
Parapt(pt):=(
//help:Parapt([2,1,5]);
regional(Xz,Yz);
@@ -396,7 +368,50 @@ Parapt(pt):=(
Yz=-pt_1*cos(PHI)*cos(THETA)-pt_2*sin(PHI)*cos(THETA)+pt_3*sin(THETA);
[Xz,Yz];
);
+////%Parapt end////
+
+///%Parasubpt start////
+Parasubpt(pt):=( //181027
+ regional(mv,dp,xs);
+ mv=NE.x-SW.x;
+ dp=pi/24;
+ xs=-pt_1*sin(PHI+dp)+pt_2*cos(PHI+dp);
+ [xs+mv,pt_3];
+);
+////%Parasubpt end////
+
+////%Parasubptlog start////
+Parasubptlog(pt):=( //181027
+ regional(dp,xs);
+ dp=pi/24;
+ xs=-pt_1*sin(PHI+dp)+pt_2*cos(PHI+dp);
+ [xs,pt_3];
+);
+////%Parasubptlog end////
+
+////%Mainsubpt3d start////
+Mainsubpt3d(pm,psv):=( //181027
+ regional(Eps,mv,dp,v,x,y,z);
+ // when Th neq 90, psv=ps_2, else psv=ps_1
+ Eps=10^(-4);
+ mv=NE.x-SW.x;
+ dp=pi/24;
+ if(abs(cos(THETA))>Eps,
+ if(length(psv)>1,v=psv_2, v=psv);
+ x=(v*cos(PHI)*sin(THETA)-pm_1*sin(PHI)*cos(THETA)-pm_2*cos(PHI))/cos(THETA);
+ y=(v*sin(PHI)*sin(THETA)+pm_1*cos(PHI)*cos(THETA)-pm_2*sin(PHI))/cos(THETA);
+ z=v;
+ ,
+ if(length(psv)>1,v=psv_1, v=psv);
+ x=(pm_1*cos(PHI+dp)-(v-mv)*cos(PHI))/sin(dp);
+ y=(pm_1*sin(PHI+dp)-(v-mv)*sin(PHI))/sin(dp);
+ z=pm_2;
+ );
+ [x,y,z];
+);
+////%Mainsubpt3d end////
+////%ProjCurve start////
ProjCurve(crv):=(
//help:Projcurve("sl3d1");
regional(CurveL,Curve,Eps,AnsL,Out,sp,cp,st,,ct,ii,pt,
@@ -448,7 +463,9 @@ ProjCurve(crv):=(
);
Out;
);
+////%ProjCurve end////
+////%Projpara start////
Projpara(ptdata):=Projpara(ptdata,[]);
Projpara(ptdata,optionsorg):=(
//help:Projpara("sf3d1");
@@ -496,10 +513,14 @@ Projpara(ptdata,optionsorg):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if(color!=KCOLOR, //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ if(color!=KCOLOR, //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
@@ -514,6 +535,7 @@ Projpara(ptdata,optionsorg):=(
Out=tmp;
Out;
);
+////%Projpara end////
InvparaptPp(pt,pd):=(
regional(Eps,fk,nfk,ph,fh,ah,bh,ak,bk,v1,v2,
@@ -572,26 +594,36 @@ InvparaptPp(pt,pd):=(
out;
);
+////%Invparapt start////
Invparapt(pt,pd):=(
regional(tmp);
tmp=InvparaptPp(pt,pd);
tmp_1;
);
+////%Invparapt end////
-Subgraph(name,opcindy):=(
- regional(tht,tmp,tmp1);
- tht=THETA; THETA=pi/2;
- tmp=Projpara(name3,["nodata"]);
- if(length(tmp)>0, //15.08.17
- tmp=Translatedata("",[tmp],[NE.x-SW.x,0],["nodata"]);
- tmp1=replace("sub"+name,"3d","2d");
- tmp=tmp1+"="+Textformat(tmp,5);
- parse(tmp);
- GCLIST=append(GCLIST,[tmp1,0,opcindy]);
+////%Subgraph start////
+Subgraph(name3,opcindy):=( //181029
+ regional(name,crvL,sub2d,color,tmp,tmp1,tmp2);
+ name=replace("sub"+name3,"3d","2d");
+ crvL=parse(name3);
+ if(MeasureDepth(crvL)==1,crvL=[crvL]);
+ sub2d=[];
+ forall(crvL,tmp1,
+ tmp2=[];
+ forall(tmp1,
+ tmp2=append(tmp2,Parasubpt(#));
+ );
+ sub2d=append(sub2d,tmp2);
);
- THETA=tht; // 15.11.03
+ tmp=name+"="+Textformat(sub2d,5);
+ parse(tmp);
+ GCLIST=append(GCLIST,[name,0,opcindy]);
+ sub2d;
);
+////%Subgraph end////
+////%Spaceline start////
Spaceline(ptlist):=Spaceline(ptlist,[]); // 16.02.22 from
Spaceline(Arg1,Arg2):=(
regional(name,tmp,tmp1,tmp2);
@@ -667,10 +699,14 @@ Spaceline(nm,ptlistorg,optionorg):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if(color!=KCOLOR, //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ if(color!=KCOLOR, //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
@@ -680,7 +716,9 @@ Spaceline(nm,ptlistorg,optionorg):=(
);
ptlist;
);
+////%Spaceline end////
+////%Spacecurve start////
Spacecurve(nm,funstr,variable):=Spacecurve(nm,funstr,variable,[]);
Spacecurve(nm,funstr,variable,optionorg):=(
//help:Spacecurve("1","[cos(t),sin(t),0.5*t]","t=[0,4*pi]",["Num=200"]);
@@ -828,10 +866,14 @@ Spacecurve(nm,funstr,variable,optionorg):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if(color!=KCOLOR, //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ if(color!=KCOLOR, //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
@@ -844,7 +886,9 @@ Spacecurve(nm,funstr,variable,optionorg):=(
);
Out;
);
+////%Spacecurve end////
+////%Partcrv3d start////
Partcrv3d(nm,pA,pB,PkLstr):=Partcrv3d(nm,pA,pB,PkLstr,[]);
Partcrv3d(nm,pA,pB,PkLstr,options):=(
//help:Partcrv3d("1",A,B,"sl3d1");
@@ -878,10 +922,13 @@ Partcrv3d(nm,pA,pB,PkLstr,options):=(
dt1=partcrv("",p1,p2,tmp,["nodata"]);
dts=partcrv("",q1,q2,"sub"+tmp,["nodata"]);
dt=apply(1..length(dt1),
- Xyzcoord(dt1_#_1,dt1_#_2,dts_#_2));
+ Xyzcoord(dt1_#,dts_#); //181028
+ );
Spaceline("-part3d"+nm,dt,options);
);
+////%Partcrv3d end////
+////%Joincrvs3d( start////
Joincrvs3d(nm,plotstrL):=Joincrvs3d(nm,plotstrL,[]);//16.10.06
Joincrvs3d(nm,plotstrL,options):=(
//help:Joincrvs3d("1",["bz3da1","bz3da1"]);
@@ -920,15 +967,15 @@ Joincrvs3d(nm,plotstrL,options):=(
pS=PtL_(length(PtL));
pQ=Qd_1;
pR=Qd_(length(Qd));
- rMN=min([norm(pP-pQ),norm(pP-pR),
- norm(pS-pQ),norm(pS-pR)]);
- if(rMN==norm(pP-pR),
+ rMN=min([Norm(pP-pQ),Norm(pP-pR),
+ Norm(pS-pQ),Norm(pS-pR)]);
+ if(rMN==Norm(pP-pR),
Qd=reverse(Qd);
,
- if(rMN==norm(pS-pQ),
+ if(rMN==Norm(pS-pQ),
PtL=reverse(PtL);
,
- if(rMN==norm(pS-pR),
+ if(rMN==Norm(pS-pR),
PtL=reverse(PtL);
Qd=reverse(Qd);
);
@@ -958,10 +1005,14 @@ Joincrvs3d(nm,plotstrL,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if(color!=KCOLOR, //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ if(color!=KCOLOR, //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
@@ -974,7 +1025,9 @@ Joincrvs3d(nm,plotstrL,options):=(
);
PtL;
);
+////%Joincrvs3d( end////
+////%Xyzax3data start////
Xyzax3data(nm,Xrange,Yrange,Zrange):=
Xyzax3data(nm,Xrange,Yrange,Zrange,[]);
Xyzax3data(nm,Xrange,Yrange,Zrange,options):=(
@@ -1050,10 +1103,14 @@ Xyzax3data(nm,Xrange,Yrange,Zrange,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if(color!=KCOLOR, //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ if(color!=KCOLOR, //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
@@ -1071,12 +1128,14 @@ Xyzax3data(nm,Xrange,Yrange,Zrange,options):=(
);
); // 16.08.14until
if(SUBSCR==1, // 15.02.11
- Subgraph(name3,opcindy);
+ Subgraph(name3,opcindy); //181029
);
);
Out;
);
+////%Xyzax3data end////
+////%Xyzax3paraname start////
Xyzaxparaname(Xrange,Yrange,Zrange):=
Xyzaxparaname(Xrange,Yrange,Zrange,[]);
Xyzaxparaname(Xrange,Yrange,Zrange,options):=(
@@ -1120,6 +1179,7 @@ Xyzaxparaname(Xrange,Yrange,Zrange,options):=(
Expr(ch,"c",Zname);
);
);
+////%Xyzax3paraname end////
Datalist3d():=(
//help:Datalist3d();
@@ -1211,10 +1271,14 @@ Embed(nm,Pd2str,funstr,varstr,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if(color!=KCOLOR, //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ if(color!=KCOLOR, //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
if(length(Out)>0,
@@ -1227,14 +1291,12 @@ Embed(nm,Pd2str,funstr,varstr,options):=(
Out;
);
-Rotatept3d(point,w1,w2):=Rotate3pt(point,w1,w2);
-Rotatept3d(point,w1,w2,center):=Rotate3pt(point,w1,w2,center);
-//help:Rotatept3d(pt3d,[0,0,1],pi/2);
-//help:Rotatept3d(pt3d,[0,0,1],pi/2,[1,1,1]);
-Rotate3pt(point,w1,w2):=Rotate3pt(point,w1,w2,[0,0,0]);
-Rotate3pt(point,w1,w2,center):=(
-//help:Rotate3pt(pt3d,[0,0,1],pi/2);
-//help:Rotate3pt(pt3d,[0,0,1],pi/2,[1,1,1]);
+Rotate3pt(point,w1,w2):=Rotatepoint3d(point,w1,w2,[0,0,0]);
+Rotate3pt(point,w1,w2,center):=Rotatepoint3d(point,w1,w2,center);
+Rotatepoint3d(point,w1,w2):=Rotatepoint3d(point,w1,w2,[0,0,0]);//180809
+Rotatepoint3d(point,w1,w2,center):=(
+//help:Rotatepoint3d(pt3d,[0,0,1],pi/2);
+//help:Rotatepoint3d(pt3d,[0,0,1],pi/2,[1,1,1]);
regional(Eps,ct,st,v3,v1,v2,Ans,ns,PtL,num,
pt,tmp,tmp1,tmp2,Retflg,x,y,z,xx,yy,zz,flg);
Eps=10^(-4);
@@ -1317,12 +1379,10 @@ Rotate3pt(point,w1,w2,center):=(
Ans;
);
-Rotatedata3d(nm,P3data,w1,w2):=Rotate3data(nm,P3data,w1,w2);
-Rotatedata3d(nm,P3data,w1,w2,options):=
- Rotate3data(nm,P3data,w1,w2,options);
+Rotatedata3d(nm,P3data,w1,w2):=Rotatedata3d(nm,P3data,w1,w2,[]);
+Rotatedata3d(nm,P3data,w1,w2,options):=(
//help:Rotatedata3d("1",["sl3d1","sc3d2"],[0,0,1],pi/3);
-Rotate3data(nm,P3data,w1,w2):=Rotate3data(nm,P3data,w1,w2,[]);
-Rotate3data(nm,P3data,w1,w2,options):=(
+//help:Rotatedata3d(options=[center,...]);
regional(name3,name2,center,pdata,Pd3,Pd,Out,tmp,tmp1,
Ltype,Noflg,opcindy,opstr,color);
name3="rot3d"+nm;
@@ -1342,10 +1402,10 @@ Rotate3data(nm,P3data,w1,w2,options):=(
Out=[];
forall(Pd3,Pd,
if(isstring(Pd),Pd=parse(Pd));
- if(MeasureDepth(Pd)==1,Pd=[Pd]);
+// if(MeasureDepth(Pd)==1,Pd=[Pd]);
Ans=[];
forall(Pd,
- tmp=Rotate3pt(#,w1,w2,center);
+ tmp=Rotatepoint3d(#,w1,w2,center); //180729
Ans=append(Ans,tmp);
);
Out=append(Out,Ans);
@@ -1353,27 +1413,33 @@ Rotate3data(nm,P3data,w1,w2,options):=(
Out=Flattenlist(Out);
if(length(Out)==1,Out=Out_1);
if(Noflg<3,
- println("generate Rotate3data "+name3);
+ println("generate Rotatedata3d "+name3);
tmp=name3+"="+textformat(Out,5);
parse(tmp);
tmp1=Projpara(name3,["nodata"]);
tmp=name2+"="+textformat(tmp1,5);
parse(tmp);
- tmp=textformat(P3data,5); // 17.12.23
+ tmp=Textformat(P3data,5); // 17.12.23
tmp=RSform(tmp,1); //180602
+ tmp=replace(tmp,Dq,"");//180808
// tmp=replace(tmp,"[","list(");
// tmp=replace(tmp,"]",")");
- tmp=name3+"=Rotate3data("+tmp+","
- +textformat(w1,5)+","+textformat(w2,5)+opstr+")";
+ tmp=name3+"=Rotate3data("+tmp+",";
+ tmp=tmp+Textformat(w1,6)+","+Textformat(w2,6);
+ tmp=tmp+","+Textformat(center,6)+")";//180808
GLIST=append(GLIST,tmp);
tmp=name2+"=Projpara("+name3+")";
GLIST=append(GLIST,tmp);
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
+ if(color!=KCOLOR, //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
+ if(color!=KCOLOR, //180904
+ Texcom("}");//180722
+ );
,
if(Noflg==1,Ltype=0);
);
@@ -1385,9 +1451,9 @@ Rotate3data(nm,P3data,w1,w2,options):=(
Out;
);
-Translatept3d(point,w1):=Translate3pt(point,w1);
-//help:Translatept3d(pt3d,[1,2,3]);
-Translate3pt(point,w1):=(
+Translate3pt(point,w1):=Translatepoint3d(point,w1);
+Translatepoint3d(point,w1):=(
+//help:Translatepoint3d(pt3d,[1,2,3]);
regional(Eps,Ans,PtL,pt,num,xx,yy,zz,flg);
Eps=10^(-4);
if(MeasureDepth(point)>0,
@@ -1414,12 +1480,9 @@ Translate3pt(point,w1):=(
Ans;
);
-Translatedata3d(nm,P3data,w1):=Translate3data(nm,P3data,w1);
-Translatedata3d(nm,P3data,w1,options):=
- Translate3data(nm,P3data,w1,options);
+Translatedata3d(nm,P3data,w1):=Translatedata3d(nm,P3data,w1,[]);
+Translatedata3d(nm,P3data,w1,options):=(
//help:Translatedata3d("1",["sl3d1"],[1,2,3]);
-Translate3data(nm,P3data,w1):=Translate3data(nm,P3data,w1,[]);
-Translate3data(nm,P3data,w1,options):=(
regional(name3,name2,pdata,Pd3,Pd,Out,tmp,tmp1,
Ltype,Noflg,opcindy,color);
name3="tra3d"+nm;
@@ -1436,7 +1499,7 @@ Translate3data(nm,P3data,w1,options):=(
if(MeasureDepth(Pd)==1,Pd=[Pd]);
Ans=[];
forall(Pd,
- tmp=Translate3pt(#,w1);
+ tmp=Translatepoint3d(#,w1);
Ans=append(Ans,tmp);
);
Out=append(Out,Ans);
@@ -1444,7 +1507,7 @@ Translate3data(nm,P3data,w1,options):=(
Out=Flattenlist(Out);
if(length(Out)==1,Out=Out_1);
if(Noflg<3,
- println("generate Translate3data "+name3);
+ println("generate Translatedata3d "+name3);
tmp=name3+"="+textformat(Out,5);
parse(tmp);
tmp1=Projpara(name3,["nodata"]);
@@ -1452,6 +1515,7 @@ Translate3data(nm,P3data,w1,options):=(
parse(tmp);
tmp=textformat(P3data,5); // 17.12.23
tmp=RSform(tmp,1); // 180602
+ tmp=replace(tmp,Dq,""); //180808
// tmp=text(P3data);
// tmp=replace(tmp,"[","list(");
// tmp=replace(tmp,"]",")");
@@ -1462,10 +1526,14 @@ Translate3data(nm,P3data,w1,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if(color!=KCOLOR, //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ if(color!=KCOLOR, //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
@@ -1476,11 +1544,9 @@ Translate3data(nm,P3data,w1,options):=(
Out;
);
-Reflectpoint3d(point,vecL):=Reflect3point(point,vecL);
-Reflectpt3d(point,vecL):=Reflect3pt(point,vecL);
+Reflect3pt(point,vecL):=Reflectpoint3d(point,vecL);
+Reflectpoint3d(point,vecL):=(
//help:Reflectpoint3d(pt3d,[v1,v2,v3]);
-Reflect3point(point,vecL):=Reflect3pt(point,vecL);
-Reflect3pt(point,vecL):=(
regional(ans,v1,v2,v3,tmp,tmp1);
if(length(vecL)==1,
v1=vecL_1;
@@ -1504,14 +1570,174 @@ Reflect3pt(point,vecL):=(
ans;
);
-Xyzcoord(X,Y,z):=(
+Reflectdata3d(nm,P3data,vecL):=Reflectdata3d(nm,P3data,vecL,[]);
+Reflectdata3d(nm,P3data,vecL,options):=(
+//help:Reflectdata3d("1",["sl3d1"],[v1,v2,v3]);
+//help:Reflectdata3d("1",["sl3d1"],[v1,v2]);
+//help:Reflectdata3d("1",["sl3d1"],[v1]);
+ regional(name3,name2,pdata,Pd3,Pd,Out,tmp,tmp1,
+ Ltype,Noflg,opcindy,color);
+ name3="ref3d"+nm;
+ name2="ref2d"+nm;
+ tmp=Divoptions(options);
+ Ltype=tmp_1;
+ Noflg=tmp_2;
+ color=tmp_(length(tmp)-2);
+ opcindy=tmp_(length(tmp));
+ if(islist(P3data) & isstring(P3data_1),Pd3=P3data,Pd3=[P3data]);
+ Out=[];
+ forall(Pd3,Pd,
+ if(isstring(Pd),Pd=parse(Pd));
+// if(MeasureDepth(Pd)==1,Pd=[Pd]);
+ Ans=[];
+ forall(Pd,
+ tmp=Reflectpoint3d(#,vecL);
+ Ans=append(Ans,tmp);
+ );
+ Out=append(Out,Ans);
+ );
+ Out=Flattenlist(Out);
+ if(length(Out)==1,Out=Out_1);
+ if(Noflg<3,
+ println("generate Reflectdata3d "+name3);
+ tmp=name3+"="+textformat(Out,5);
+ parse(tmp);
+ tmp1=Projpara(name3,["nodata"]);
+ tmp=name2+"="+Textformat(tmp1,5);
+ parse(tmp);
+ tmp=Textformat(P3data,5); // 17.12.23
+ tmp=RSform(tmp,1); // 180602
+ tmp=replace(tmp,Dq,""); //180807
+// tmp=text(P3data);
+// tmp=replace(tmp,"[","list(");
+// tmp=replace(tmp,"]",")");
+ tmp=name3+"=Reflect3data("+tmp;
+ tmp=tmp+","+RSform(Textformat(vecL,5),2)+")";
+ GLIST=append(GLIST,tmp);
+ tmp=name2+"=Projpara("+name3+")";
+ GLIST=append(GLIST,tmp);
+ );
+ if(Noflg<2,
+ if(isstring(Ltype),
+ if(color!=KCOLOR, //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ if(color!=KCOLOR, //180904
+ Texcom("}");//180722
+ );
+ ,
+ if(Noflg==1,Ltype=0);
+ );
+ GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
+ if(SUBSCR==1, // 15.02.11
+ Subgraph(name3,opcindy);
+ );
+ );
+ Out;
+);
+
+// 180806
+Scale3pt(point,ratio,center):=Scalepoint3d(point,ratio,center);
+Scalepoint3d(point,ratio):=Scalepoint3d(point,ratio,[0,0,0]);//180809
+Scalepoint3d(point,ratio,center):=(
+//help:Scalepoint3d(A,[3,2,4]);
+//help:Scalepoint3d(A,[3,2,4],[1,2,3]);
+ regional(ra1,ra2,ra3,X1,Y1,Z1,X2,Y2,Z2,Cx,Cy,Cz);
+ X1=point_1; Y1=point_2; Z1=point_3;
+ if(length(ratio)==1, //1808from
+ ra1=ratio; ra2=ratio; ra3=ratio;
+ ,
+ ra1=ratio_1; ra2=ratio_2; ra3=ratio_3;
+ );//1808to
+ Cx=center_1; Cy=center_2; Cz=center_3;
+ X2=Cx+ra1*(X1-Cx);
+ Y2=Cy+ra2*(Y1-Cy);
+ Z2=Cz+ra3*(Z1-Cz);
+ [X2,Y2,Z2];
+);
+
+// 180808
+Scaledata3d(nm,P3data,ratio):=Scaledata3d(nm,P3data,ratio,[]);
+Scaledata3d(nm,P3data,ratio,options):=(
+//help:Scaledata3d("1",["sl3d1"],[v1,v2,v3]);
+ regional(name3,name2,pdata,Pd3,Pd,Out,tmp,tmp1,
+ reL,Ltype,Noflg,opcindy,color,center);
+ name3="ref3d"+nm;
+ name2="ref2d"+nm;
+ tmp=Divoptions(options);
+ Ltype=tmp_1;
+ Noflg=tmp_2;
+ reL=tmp_6;
+ color=tmp_(length(tmp)-2);
+ opcindy=tmp_(length(tmp));
+ center=[0,0,0];
+ if(length(reL)>0,
+ center=reL_1;
+ );
+ if(islist(P3data) & isstring(P3data_1),Pd3=P3data,Pd3=[P3data]);
+ Out=[];
+ forall(Pd3,Pd,
+ if(isstring(Pd),Pd=parse(Pd));
+// if(MeasureDepth(Pd)==1,Pd=[Pd]);
+ Ans=[];
+ forall(Pd,
+ tmp=Scalepoint3d(#,ratio,center);
+ Ans=append(Ans,tmp);
+ );
+ Out=append(Out,Ans);
+ );
+ Out=Flattenlist(Out);
+ if(length(Out)==1,Out=Out_1);
+ if(Noflg<3,
+ println("generate Scaledata3d "+name3);
+ tmp=name3+"="+textformat(Out,5);
+ parse(tmp);
+ tmp1=Projpara(name3,["nodata"]);
+ tmp=name2+"="+Textformat(tmp1,5);
+ parse(tmp);
+ tmp=Textformat(P3data,5); // 17.12.23
+ tmp=RSform(tmp,1); // 180602
+ tmp=replace(tmp,Dq,""); //180807
+// tmp=text(P3data);
+// tmp=replace(tmp,"[","list(");
+// tmp=replace(tmp,"]",")");
+ tmp=name3+"=Scale3data("+tmp;
+ tmp=tmp+","+Textformat(ratio,5);
+ tmp=tmp+","+Textformat(center,5)+")";
+ GLIST=append(GLIST,tmp);
+ tmp=name2+"=Projpara("+name3+")";
+ GLIST=append(GLIST,tmp);
+ );
+ if(Noflg<2,
+ if(isstring(Ltype),
+ if(color!=KCOLOR, //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ if(color!=KCOLOR, //180904
+ Texcom("}");//180722
+ );
+ ,
+ if(Noflg==1,Ltype=0);
+ );
+ GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
+ if(SUBSCR==1, // 15.02.11
+ Subgraph(name3,opcindy);
+ );
+ );
+ Out;
+);
+
+////%Xyzcoord start////
+Xyzcoord(pm,ps):=Xyzcoord(pm_1,pm_2,ps); //181028from
+Xyzcoord(X,Y,ps):=(
//help:Xyzcoord(A.x,A.y,Az.y);
- regional(Eps,x3d,y3d,z3d);
- x3d=(-X*sin(PHI)*cos(THETA)-Y*cos(PHI)+z*cos(PHI)*sin(THETA))/cos(THETA);
- y3d=(X*cos(PHI)*cos(THETA)-Y*sin(PHI)+z*sin(PHI)*sin(THETA))/cos(THETA);
- z3d=z;
- [x3d,y3d,z3d];
+ regional(pt3d);
+ pt3d=Mainsubpt3d([X,Y],ps);
+ pt3d;//181028to
);
+////%Xyzcoord end////
PutonCurve3d(name,pdstr):=(
//help:PutonCurve3d("T","sc3d1");
@@ -1523,138 +1749,126 @@ PutonCurve3d(name,pdstr):=(
tmp1=ParamonCurve(tmp_1,tmp_2,pd2str);
tmp="sub"+pd2str;
tmp2=PointonCurve(tmp1,tmp);
- pt=append(pt,tmp2_2);
- pt=Xyzcoord(pt_1,pt_2,pt_3); // 15.03.13
+// pt=append(pt,tmp2_2); //181028(2lines)
+ pt=Xyzcoord(pt,tmp2); // 15.03.13
tmp=name+"z.xy="+textformat(tmp2,5);
parse(tmp);
VLIST=select(VLIST,#_1!=name+"3d");
Defvar(name+"3d",pt);
);
+////%Mkpointlist start////
Mkpointlist():=Mkpointlist([]); //16.11.12
-Mkpointlist(options):=( //16.11.12
- regional(Eps,pos,ptL,plist,ilist,plistrest,
- inforest,free,pt,pt3,ptz,par,vlistpre,
+Mkpointlist(options):=( //181030
+ regional(Eps,pos,worklist,plist,pt,ptstr,pt3,ptz,par,
+ vlistpre,
tmp,tmp1,tmp2,tmp3,tmp4,p1,p2,flg);
Eps=10^(-4);
- tmp=Finddef(NE);
- free=tmp_1;
pos=[NE.x+1,NE.y];
- tmp=remove(allpoints(),[NE,SW,TH,FI]);
- tmp=remove(tmp,options); //16.11.12
- plist=select(tmp,
- substring(text(#),length(text(#))-1,length(text(#)))!="z"
- );
+ worklist=Workprocess(); //181030
+ plist=select(worklist,length(#_3)!=2);
+ plist=apply(plist,#_1);
+ plist=remove(plist,PTEXCEPTION);
+ tmp=apply(VLIST,#_1);//181029from
+ tmp=select(tmp,indexof(#,"3d")>0);
+ tmp2=apply(tmp,replace(#,"3d",""));
+ forall(tmp2,ptstr,
+ if(!contains(plist,ptstr),
+ tmp=select(VLIST,
+ (#_1==pt+"3d")%(#_1==pt+"2d")%(#_1==pt+"fix"));
+ VLIST=remove(VLIST,tmp);
+ );
+ ); //181029to
+// vlistpre=VLIST; //181015
if(SUBSCR==0,plist=[]);
- ptL=[];
- plistrest=[];
- inforest=[];
- forall(plist,pt,
+ forall(plist,ptstr,
+ pt=parse(ptstr);
inspect(pt,"ptsize",3);
inspect(pt,"color",2);
inspect(pt,"textsize",TSIZE);
ptz=text(pt)+"z";
tmp=Finddef(pt);
- if(indexof(tmp_1,free)>0, // free point
- tmp=select(VLIST,#_1==text(pt)+"3d");
- if(length(tmp)==0,
- tmp=pt.x+NE.x-SW.x;
- Putpoint(ptz,[tmp,0],[tmp,parse(ptz+".y")]);
- pt3=Xyzcoord(pt.x,pt.y,parse(text(ptz)+".y"));
- Defvar(text(pt)+"3d",pt3);
- Defvar(text(pt)+"fix",0);
- vlistpre=VLIST; //16.08.20
- );
- flg=0;
- if(isselected(pt),
- if(parse(text(pt)+"fix")!=1, // 15.03.01
- tmp=pt.x+NE.x-SW.x;
- Putpoint(ptz,[tmp,0],[tmp,parse(ptz+".y")]);
- pt3=Xyzcoord(pt.x,pt.y,parse(text(ptz)+".y"));
- VLIST=select(VLIST,#_1!=text(pt)+"3d");
- Defvar(text(pt)+"3d",pt3);
- vlistpre=VLIST; //16.08.20
- flg=1;
+ tmp=select(VLIST,#_1==text(pt)+"3d");
+ if(length(tmp)==0,
+ if(abs(cos(THETA))>Eps,//181028from
+ tmp1=Mainsubpt3d(pt.xy,0);
+ tmp=Parasubpt(tmp1);
+ Putpoint(ptz,tmp,[tmp_1,parse(ptz+".y")]);
+ pt3=Mainsubpt3d(pt.xy,parse(ptz+".xy"));
+ ,
+ if(abs(sin(PHI))>abs(cos(PHI)), //181029from
+ tmp=Parasubpt([-pt.x/sin(PHI),0,pt.y]);
+ ,
+ tmp=Parasubpt([0,pt.x/cos(PHI),pt.y]);
);
- );
- inspect(parse(ptz),"ptsize",3);
- inspect(parse(ptz),"color",3);
- inspect(parse(ptz),"textsize",TSIZEZ);
- if(isselected(parse(ptz)),
- if(parse(ptz+"fix")!=1, // 15.03.01
- tmp=select(vlistpre,#_1==text(pt)+"3d"); //16.08.20
- pt3=tmp_1_2;
- pt3_3=parse(ptz+".y");
- pt.xy=Parapt(pt3);
- tmp=ptz+".x=pt.x+NE.x-SW.x";
- parse(tmp);
+ Putpoint(ptz,tmp,[parse(ptz+".x"),pt.y]);//181029to
+ pt3=Mainsubpt3d(pt.xy,parse(ptz+".xy"));
+ ); //181028to
+ Defvar(text(pt)+"3d",pt3);
+ Defvar(text(pt)+"fix",0);
+// vlistpre=VLIST; //16.08.20
+ );
+ flg=0;
+ if(isstring(ptz),ptz=parse(ptz));//181029from
+ inspect(ptz,"ptsize",3);
+ inspect(ptz,"color",3);
+ inspect(ptz,"textsize",TSIZEZ);//181029to
+ if(isselected(pt),
+ if(parse(text(pt)+"fix")!=1,
+ tmp=select(VLIST,#_1==text(pt)+"3d");
+ tmp1=tmp_1_2;
+ tmp2=Mainsubpt3d(pt.xy,ptz.xy); //181029
+ if(Norm(tmp1-tmp2)>Eps,
VLIST=select(VLIST,#_1!=text(pt)+"3d");
- Defvar(text(pt)+"3d",pt3);
- flg=2;
+ Defvar(text(pt)+"3d",tmp2);
+// vlistpre=VLIST; //16.08.20
);
+ Putpoint(text(ptz),Parasubpt(tmp2));
+ pt3=tmp2;
+ flg=1;
);
- if(flg==0,
- tmp=select(VLIST,#_1==text(pt)+"3d");
- if(length(tmp)>0, //17.10.07
- pt3=tmp_1_2;
- pt.xy=Parapt(pt3);
- tmp=ptz+".x=pt.x+NE.x-SW.x";
- parse(tmp);
- ); //17.10.07
- );
- if(isselected(pt) % isselected(parse(ptz)),
- drawtext(pos,text(pt3));
- );
- if(!contains(["p","q"],text(pt)),
- ptL=append(ptL,pt);
- );
- ,
- tmp=Findgeoinfo(pt);
- tmp1=[parse(tmp_1),parse(tmp_2),parse(tmp_3)];
- plistrest=append(plistrest,pt);
- inforest=append(inforest,tmp);
- );
- );
- if(length(plistrest)>0,
- tmp=Sortpointlist([plistrest,inforest]);
- plist=tmp_1;
- ilist=tmp_2;
- forall(1..length(plist),
- pt=plist_#;
- ptz=text(pt)+"z";
- tmp=ilist_#;
- p1=parse(tmp_3);
- p2=p1+parse(tmp_2)-parse(tmp_1);
- tmp1=p2-p1;
- tmp2=pt-p1;
- if(abs(tmp1_1)>abs(tmp1_2),
- par=tmp2_1/tmp1_1;
+ );
+ if(isselected(ptz),
+// tmp=select(vlistpre,#_1==text(pt)+"3d"); //16.08.20
+ tmp=select(VLIST,#_1==text(pt)+"3d"); //181030
+ tmp1=tmp_1_2;
+ tmp2=Mainsubpt3d(pt.xy,ptz.xy);
+ if(Norm(tmp1-tmp2)>Eps,
+ if(abs(cos(THETA))>Eps,
+ tmp2=[tmp1_1,tmp1_2,tmp2_3];
,
- par=tmp2_2/tmp1_2;
- );
- tmp=ilist_#;
- tmp1=parse(tmp_1+"3d");
- tmp2=parse(tmp_2+"3d");
- tmp3=parse(tmp_3+"3d");
- tmp1=(1-par)*tmp3+par*(tmp3+tmp2-tmp1);
- Putpoint(ptz,[pt.x+NE.x-SW.x,tmp1_3]);
- inspect(parse(ptz),"ptsize",3);
- inspect(parse(ptz),"color",3);
- inspect(parse(ptz),"textsize",TSIZEZ);
- pt3=Xyzcoord(pt.x,pt.y,parse(text(ptz)+".y"));
- VLIST=select(VLIST,#_1!=tmp1+"3d");
+ ); //181028to
+ VLIST=select(VLIST,#_1!=text(pt)+"3d");
+ Defvar(text(pt)+"3d",tmp2);
+ );
+ Putpoint(text(ptz),Parasubpt(tmp2));
+ pt3=tmp2;
+ flg=2;
+ );
+ if(isselected(TH) % isselected(FI), //181029
+ tmp=select(VLIST,#_1==text(pt)+"3d");
+ if(length(tmp)>0, //17.10.07
+ tmp1=Parapt(tmp_1_2);
+ Putpoint(text(pt),tmp1); //181029
+ tmp2=Parasubpt(tmp_1_2);//181027(2lines)
+ Putpoint(text(ptz),tmp2); //181029
+ flg=3;
+ ); //17.10.07
+ );
+ if(flg==0, //181030from
+ pt3=Mainsubpt3d(pt.xy,ptz.xy);
+ VLIST=select(VLIST,#_1!=text(pt)+"3d");
Defvar(text(pt)+"3d",pt3);
- vlistpre=VLIST; //16.08.20
- if(isselected(pt) % isselected(parse(ptz)),
- drawtext(pos,text(pt3));
- );
- if(!contains(["p","q"],text(pt)),
- ptL=append(ptL,pt);
- );
+ ); //181030to
+ if(isselected(pt) % isselected(ptz),
+ drawtext(pos,text(pt3));
+ );
+ if(!contains(["p","q"],text(pt)),
+ ptL=append(ptL,pt);
);
);
- ptL;
);
+////%Mkpointlist end////
Mkseg3d():=Mkseg3d([]);
Mkseg3d(options):=(
@@ -1700,6 +1914,7 @@ Mkseg3d(options):=(
segL;
);
+////%Ptseg3data start////
Ptseg3data():=Ptseg3data([]);
//help:Ptseg3data();
//help:Ptseg3data([A,B]);
@@ -1732,7 +1947,9 @@ Ptseg3data(options):=(
SEG3dlist=Mkseg3d(options);
SEG3dlist;
);
+////%Ptseg3data end////
+////%Putonseg3d start////
Putonseg3d(name,ptL):=Putonseg3d(name,ptL_1,ptL_2,[]);
Putonseg3d(name,Arg1,Arg2):=(
if(islist(Arg1),
@@ -1750,7 +1967,11 @@ Putonseg3d(name,pt1,pt2,options):=(
if(length(tmp_6)>0,
par=tmp_6_1;
);
- Putonseg(name,pt1,pt2,[par]);
+ if(ispoint(pt1), //181030from
+ Putonseg(name,pt1,pt2,[par]);
+ ,
+ Putonseg(name,Parapt(pt1),Parapt(pt2),[par]);
+ ); //181030from
inspect(parse(name),"ptsize",3);
inspect(parse(name),"color",2);
inspect(parse(name),"textsize",TSIZEZ);
@@ -1758,23 +1979,33 @@ Putonseg3d(name,pt1,pt2,options):=(
inspect(parse(name+"z"),"ptsize",3);
inspect(parse(name+"z"),"color",3);
inspect(parse(name+"z"),"textsize",TSIZEZ);
- pn1=text(pt1);
- pn2=text(pt2);
- tmp1=replace("PTCz.y=PTAz.y+|PTC-PTA|/|PTB-PTA|*(PTBz.y-PTAz.y)","PTC",name);
- tmp1=replace(tmp1,"PTA",pn1);
- tmp1=replace(tmp1,"PTB",pn2);
- tmp2=replace("PTCz.x=PTAz.x+|PTC-PTA|/|PTB-PTA|*(PTBz.x-PTAz.x)","PTC",name);
- tmp2=replace(tmp2,"PTA",pn1);
- tmp2=replace(tmp2,"PTB",pn2);
- parse(tmp2);
- parse(tmp1);
- tmp1=parse(name+".x");
- tmp2=parse(name+".y");
- tmp3=parse(name+"z.y");
- tmp=Xyzcoord(tmp1,tmp2,tmp3);
+ if(ispoint(pt1),
+ pn1=text(pt1);
+ pn2=text(pt2);
+ tmp1=replace("PCz.xy=PAz.xy+|PC-PA|/|PB-PA|*(PBz.xy-PAz.xy)","PC",name);
+ tmp1=replace(tmp1,"PA",pn1);
+ tmp1=replace(tmp1,"PB",pn2);
+ parse(tmp1);
+ ,
+ pn1=Textformat(Parapt(pt1),5); //181030from
+ pn2=Textformat(Parapt(pt2),5);
+ tmp1=replace("PCz.xy=PAs+Norm(PC-PAm)/Norm(PBm-PAm)*(PBs-PAs)","PC",name);
+ tmp1=replace(tmp1,"PAm",pn1);
+ tmp1=replace(tmp1,"PBm",pn2);
+ pn1=Textformat(Parasubpt(pt1),5); //181030from
+ pn2=Textformat(Parasubpt(pt2),5);
+ tmp1=replace(tmp1,"PAs",pn1);
+ tmp1=replace(tmp1,"PBs",pn2);
+ parse(tmp1);
+ );
+ tmp1=parse(name+".xy"); //181028(3lines)
+ tmp2=parse(name+"z.xy");
+ tmp=Xyzcoord(tmp1,tmp2);
Defvar(name+"3d",tmp);
);
+////%Putonseg3d end////
+////%Putpoint3d start////
Putpoint3d(ptslist):=Putpoint3d(ptslist,"",0);
Putpoint3d(Arg1,Arg2):=( // 16.03.02 from
if(islist(Arg1),
@@ -1807,7 +2038,7 @@ Putpoint3d(Arg1,Arg2,Arg3):=(
if(islist(fixstr),tmp=fixstr_1,tmp=fixstr);
tmp=Toupper(tmp);
if(tmp!="FIX",
- tmp=Xyzcoord(tmp2.x,tmp2.y,parse(tmp1+"z").y);
+ tmp=Xyzcoord(tmp2.xy,parse(tmp1+"z.xy")); //181028
,
tmp=pt3;
);
@@ -1836,7 +2067,9 @@ Putpoint3d(Arg1,Arg2,Arg3):=(
Fixpoint3d(ptslist);
);
);
+////%Putpoint3d end////
+////%Fixpoint3d start////
Fixpoint3d(ptlist):=(
// help:Fixpoint3d(["O",[0,0,0],"X",[1,0,0]]);
regional(name,pt3,pt2,tmp,tmp1,tmp2);
@@ -1855,7 +2088,9 @@ Fixpoint3d(ptlist):=(
parse(tmp);
);
);
+////%Fixpoint3d end////
+////%Perppt start////
Perppt(name,ptstr,pLstr):=Putperp(name,ptstr,pLstr,"draw");
Perppt(name,ptstr,pLstr,option):=Putperp(name,ptstr,pLstr,option);
Putperp(name,ptstr,pLstr):=Putperp(name,ptstr,pLstr,"put");
@@ -1913,12 +2148,15 @@ Putperp(name,ptstr,pLstr,option):=(
);
out;
);
+////%Perppt end////
+////%Perpplane start////
Perpplane(name,ptstr,nvec):=
Perpplane(name,ptstr,nvec,"draw");
Perpplane(name,ptstr,nstr,option):=(
//help:Perpplane("A-B","P",[1,3,2]);
-//help:Perpplane("A-B","P",[0,0,1,0]);
+//help:Perpplane("A-B","P",[1,3,2]);
+//help:Perpplane(option=["Put/Draw"]);
regional(Eps,nvec,sgstr,pP,v1,v2,v3,
th,ph,pA,pB,tmp,tmp1,tmp2);
Eps=10^(-4);
@@ -1948,20 +2186,42 @@ Perpplane(name,ptstr,nstr,option):=(
);
[pA,pB];
);
+////%Perpplane end////
-Drawpoint3d(pt3):=(
+////%Drawpoint3d start////
+Drawpoint3d(pt3):=Drawpoint3d(pt3,["Color=green"]);
+Drawpoint3d(pt3,options):=(
//help:Drawpoint3d(pt3d);
+//help:Drawpoint3d(options=["Color=(green)"]);
regional(ptL,tmp,tmp1,tmp2);
+ tmp=Divoptions(options);
+ opcindy=tmp_(length(tmp));
if(MeasureDepth(pt3)==0,ptL=[pt3],ptL=pt3);
forall(ptL,
- tmp=parapt(#);
- draw(tmp_(1..2));
+ tmp="draw("+Textformat(Parapt(#),6)+opcindy+")";
+ parse(tmp);
if(SUBSCR==1,
- draw([tmp_1+NE.x-SW.x, #_3]);
+ tmp="draw("+Textformat(Parasubpt(#),6)+opcindy+")";
+ parse(tmp);
);
);
);
+////%Drawpoint3d end////
+
+////%Pointdata3d start////
+Pointdata3d(nm,pt3):=Pointdata3d(nm,pt3,[]);//181017from
+Pointdata3d(nm,pt3,options):=( //181017from
+//help:Pointdata3d("1",pt3dlist,options);
+ regional(pt3L,pt2L,tmp);
+ if(MeasureDepth(pt3)==0,pt3L=[pt3],pt3L=pt3);
+ pt2L=apply(pt3L,Parapt(#));
+ Pointdata("2d"+nm,pt2L,append(options,"Disp=n"));
+ tmp="pt3d"+nm+"="+format(pt3L,6);
+ parse(tmp);
+); //181017to
+////%Pointdata3d end////
+////%Putaxes3d start////
Putaxes3d(size):=(
//help:Putaxes3d(5);
//help:Putaxes3d([1,2,3]);
@@ -1974,17 +2234,46 @@ Putaxes3d(size):=(
// Fixpoint3d(["O",[0,0,0]]);
// Fixpoint3d(["X",[sL_1,0,0],"Y",[0,sL_2,0],"Z",[0,0,sL_3]]);//17.06.02funtil
);
+////%Putaxes3d end////
+////%IntersectsgpL start////
IntersectsgpL(name,sgstr,pLstr):=
- IntersectsgpL(name,sgstr,pLstr,"draw");
-IntersectsgpL(name,sgstr,pLstr,option):=(
+ IntersectsgpL(name,sgstr,pLstr,["Draw=ie"]);
+IntersectsgpL(name,sgstr,pLstr,optionsorg):=(
//help:IntersectsgpL("R","P-Q","A-B-C");
-//help:IntersectsgpL("R","P-Q","A-B-C","put");
-//// help:IntersectsgpL("","P-Q","A-B-C","none");
-//help:IntersectsgpL("",[p1,p2],[p3,p4,p5],"draw");
- regional(opstr,out,pP,pQ,pA,pB,pC,pH,pK,pR,tseg,tt,ss,Eps,flg,
- nvec,tmp,tmp1,tmp2,tmp3,tmp4);
- if(islist(option),opstr=option_1,opstr=option);
+//help:IntersectsgpL("",[p1,p2],[p3,p4,p5]);
+//help:IntersectsgpL(options=["draw(put)","ie"+pointoptions]);
+ regional(options,strL,ptflg,out,pP,pQ,pA,pB,pC,pH,pK,pR,tseg,tt,ss,Eps,
+ flg,nvec,tmp,tmp1,tmp2,tmp3,tmp4);
+ options=optionsorg; //181026from
+ tmp1="";
+ if(isstring(options),
+ tmp1=options;
+ options=[];
+ );
+ options=remove(options,["draw","Draw"]);
+ tmp=Divoptions(options);
+ strL=tmp_7;
+ if(length(tmp1)>0,
+ strL=append(strL,tmp1);
+ );
+ ptflg=["D","ie"];
+ forall(strL,
+ tmp=Toupper(substring(#,0,1));
+ if(tmp=="P",
+ ptflg_1="P";
+ );
+ if((tmp=="I")%(tmp=="E"),
+ if(length(#)==1,
+ ptflg_2=#+"e";
+ ,
+ ptflg_2=#;
+ );
+ );
+ );
+ options=remove(options,strL);
+ tmp=select(options,substring(#,0,1)=="C");
+ if(length(tmp)==0,options=append(options,"Color=green"));//181026to
Eps=10^(-4);
flg=0;
if(!isstring(sgstr), // 15.05.29
@@ -2015,8 +2304,8 @@ IntersectsgpL(name,sgstr,pLstr,option):=(
);
nvec=Crossprod(pB-pA,pC-pA);
if(abs(Dotprod(nvec,pQ-pP))>Eps,
- pH=(Reflect3point(pP,[pA,pB,pC])+pP)/2;
- pK=(Reflect3point(pQ,[pA,pB,pC])+pQ)/2;
+ pH=(Reflectpoint3d(pP,[pA,pB,pC])+pP)/2; //180811(2lines)
+ pK=(Reflectpoint3d(pQ,[pA,pB,pC])+pQ)/2;
tmp1=pP-pH;
tmp2=tmp1+pK-pQ;
tmp=select(tmp2,abs(#)==max(apply(tmp2,abs(#))));
@@ -2024,14 +2313,6 @@ IntersectsgpL(name,sgstr,pLstr,option):=(
tmp=tmp_1;
tseg=tmp1_tmp/tmp2_tmp;
pR=(1-tseg)*pH+tseg*pK;
- tmp=substring(opstr,0,1);
- if(Toupper(tmp)=="P",
- Putpoint3d([name,pR]);
- Fixpoint3d([name,pR]);
- );
- if(Toupper(tmp)=="D",
- Drawpoint3d(pR);
- );
tmp=Dotprod(pB-pA,pC-pA);
tmp1=Dotprod(pB-pA,pB-pA);
tmp2=Dotprod(pC-pA,pC-pA);
@@ -2039,15 +2320,30 @@ IntersectsgpL(name,sgstr,pLstr,option):=(
tmp4=Dotprod(pR-pA,pC-pA);
ss=-(tmp*tmp4-tmp3*tmp2)/(tmp1*tmp2-tmp^2);
tt=(tmp1*tmp4-tmp*tmp3)/(tmp1*tmp2-tmp^2);
- out=[pR,tseg,ss,tt];
- ,
- if(Toupper(substring(opstr,0,1))!="N",
- println(" "+sgstr+","+pLstr+" are parallel");
+ tmp1=(tseg>-Eps)&(tseg<1+Eps); //181027from
+ tmp2=(ss>-Eps)&(ss<1+Eps)&(tt>-Eps)&(tt<1+Eps)&(ss+tt<1+Eps);//181029
+ out=[pR,tmp1,tmp2,tseg,ss,tt]; //181027to
+ tmp=ptflg_2;
+ tmp1=(tmp1)%(substring(tmp,0,1)=="e"); //181025from
+ tmp2=(tmp2)%(substring(tmp,1,2)=="e");
+ if(tmp1&tmp2,
+ if(ptflg_1=="P", //181025
+ Putpoint3d([name,pR]);
+ Fixpoint3d([name,pR]);
+ ,
+ Pointdata3d(name,pR,options);
+ );
+// println(" pt"+name+" data:"+format(out,5));
+ ,
+// println("pt"+name+" data:"+format(out,5));
);
- out=[];
+ ,
+ println(" "+sgstr+" and "+pLstr+" may be parallel");//181025to
+ out=[[],false,false]; //181029
);
out;
);
+////%IntersectsgpL end////
Bezier3d(nm,ptctrlist):=Bezier3(nm,ptctrlist);
Bezier3d(nm,Ag1,Ag2):=Bezier3(nm,Ag1,Ag2);
@@ -2459,10 +2755,10 @@ VertexandEdge(nm,vfnL,options):=VertexEdgeFace(nm,vfnL,options);
VertexEdgeFace(nm,vfnL):=VertexEdgeFace(nm,vfnL,[]); // 16.02.10
//help:VertexEdgeFace("1",[vL,fnL]);
//help:VertexEdgeFace("1",["A","B","C"]);
-//help:VertexEdgeFace(options=["Pt=fix","Edg=geo"]);
+//help:VertexEdgeFace(options=["Pt=fix","Vtx=geo","Edg=geo"]);
VertexEdgeFace(nm,vfnLorg,optionorg):=(
regional(name3,namev,namee,namef,vfnL,options,Noflg,eqL,strL,
- vL,eL,enL,face,edge,vtx,vname,fixflg,edgflg,tmp,tmp1,tmp2);
+ vL,eL,enL,face,edge,vtx,vname,fixflg,vtxflg, edgflg,tmp,tmp1,tmp2);
name3="phvef"+nm;
namev="phv3d"+nm;
namee="phe3d"+nm;
@@ -2480,6 +2776,7 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
eqL=tmp_5;
strL=tmp_7;
fixflg=1;
+ vtxflg=1; //180905
edgflg=1;
forall(eqL,
tmp1=Toupper(substring(#,0,1));
@@ -2489,6 +2786,10 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
if(tmp2=="FREE", fixflg=0);
options=remove(options,[#]);
);
+ if(tmp1=="V", //180905from
+ if(substring(tmp2,0,1)=="N", vtxflg=0);
+ options=remove(options,[#]);
+ ); //180905to
if(tmp1=="E",
if(substring(tmp2,0,1)=="N", edgflg=0);
options=remove(options,[#]);
@@ -2512,9 +2813,19 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
// parse(tmp);
,
vname="v"+text(#);
- if(fixflg==1,
- Putpoint3d(["v"+text(#),vtx],"fix");
- );
+ if(vtxflg==1, //180905
+ if(fixflg==1,
+ Putpoint3d([vname,vtx],"fix");
+ );
+ , //180905from
+ tmp=vname+"3d="+format(vtx,6);
+ parse(tmp);
+ Defvar(vname+"3d",parse(vname+"3d"));
+ tmp=vname+"2d=Parapt("+vname+"3d)";
+ parse(tmp);
+ Defvar(vname+"2d",parse(vname+"2d"));
+ drawtext(parse(vname+"2d"),vname);
+ ); //180905to
);
vL=append(vL,vname); // 16.02.10 until
);
@@ -2706,24 +3017,34 @@ Phparadata(nm,nmvf,vfL,options):=(
);
);
-Nohiddenseg(seg,rng,triang):=(
+Nohiddenseg(seg,rng,triang,Eps):=(
// help:Nohiddenseg("1",seg1,[0,1],["v1","v2","v3"]);
- regional(Eps,pA3,pB3,pC3,pA,pB,pC,sg1,sg2,ss1,ss2,parL,flgL,flg1,flg2,
- veB,veC,sgnoh,sghid,added,tristr,tmp,tmp1,tmp2,tmp3,tmp4,tmp5);
- Eps=10^(-4);
+ regional(pA3,pB3,pC3,pA,pB,pC,sg1,sg2,ss1,ss2,parL,flgL,flg1,flg2,
+ veB,veC,sgnoh,sghid,added,tmp,tmp1,tmp2,tmp3,tmp4,tmp5);
+// Eps=10^(-2);//180815
sgnoh=[0,1];
- pA3=if(isstring(triang_1),parse(triang_1+"3d"),triang_1); //16.06.19
+ pA3=triang_1; //180815from
+ if(isstring(pA3),
+ if(indexof(pA3,"3d")==0,pA3=pA3+"3d");
+ pA3=parse(pA3);
+ );
+ pB3=triang_2;
+ if(isstring(pB3),
+ if(indexof(pB3,"3d")==0,pB3=pB3+"3d");
+ pB3=parse(pB3);
+ );
+ pC3=triang_3;
+ if(isstring(pC3),
+ if(indexof(pC3,"3d")==0,pC3=pC3+"3d");
+ pC3=parse(pC3);
+ ); //180815to
pA=Parapt(pA3);
- pB3=if(isstring(triang_2),parse(triang_2+"3d"),triang_2); //16.06.19
pB=Parapt(pB3);
- pC3=if(isstring(triang_3),parse(triang_3+"3d"),triang_3); //16.06.19
pC=Parapt(pC3);
sg1=seg_1+rng_1*(seg_2-seg_1);
sg2=seg_1+rng_2*(seg_2-seg_1);
ss1=Parapt(sg1);
ss2=Parapt(sg2);
- tristr=replace(text(triang),",","-");
- tristr=substring(tristr,1,length(tristr)-1);
if(|ss2-ss1|>Eps & abs(Crossprod(pB-pA,pC-pA))>Eps,
tmp=IntersectcrvsPp([ss1,ss2],[pA,pB,pC,pA]);
parL=apply(tmp,#_2-1);
@@ -2736,7 +3057,7 @@ Nohiddenseg(seg,rng,triang):=(
);
tmp1=Crossprod(pB3-pA3,pC3-pA3);
if(abs(Dotprod(tmp1,sg2-sg1))>Eps,
- tmp=IntersectsgpL("",[sg1,sg2],tristr,["nodisp"]);
+ tmp=IntersectsgpL("",[sg1,sg2],[pA3,pB3,pC3],["nodisp"]);//180815
if(tmp_2>-Eps & tmp_2<1+Eps,
if(tmp_3>-Eps & tmp_4>-Eps & tmp_3+tmp_4<1+Eps,
tmp1=select(parL,abs(tmp_2-#)<Eps);
@@ -2752,7 +3073,7 @@ Nohiddenseg(seg,rng,triang):=(
tmp=Projcoordpara(tmp1);
tmp_3=tmp_3+1;
tmp2=Cancoordpara(tmp);
- tmp=IntersectsgpL("",[tmp1,tmp2],tristr,["nodisp"]);
+ tmp=IntersectsgpL("",[tmp1,tmp2],[pA3,pB3,pC3],["nodisp"]);//180815
tmp1=Projcoordpara(tmp1);
tmp2=Projcoordpara(tmp_1);
flg1=0;
@@ -2829,9 +3150,9 @@ Nohiddenseg(seg,rng,triang):=(
sgnoh;
);
-Nohiddensegs(seg,range,faceno,vtxL):=(
- regional(Eps,rng,face,vtx,out,ra,rb,tmp,tmp1,tmp2);
- Eps=10^(-4);
+Nohiddensegs(seg,range,faceno,vtxL,Eps):=(
+ regional(rng,face,vtx,out,ra,rb,tmp,tmp1,tmp2);
+// Eps=10^(-2);
face=apply(faceno,vtxL_#); // 16.02.10
rng=range;
out=rng;
@@ -2840,7 +3161,7 @@ Nohiddensegs(seg,range,faceno,vtxL):=(
forall(1..(length(rng)/2),
tmp=[rng_(2*#-1),rng_(2*#)];
out=remove(out,tmp);
- tmp2=Nohiddenseg(seg,tmp,tmp1);
+ tmp2=Nohiddenseg(seg,tmp,tmp1,Eps);
if(length(tmp2)>0,
out=remove(out,tmp);
out=concat(out,tmp2);
@@ -2898,19 +3219,49 @@ Nohiddenbyfaces(nm,Arg1,Arg2,Arg3):=(
);
Nohiddenbyfaces(nm,segstr,facestr,options,optionsh); // 16.02.21
);
-Nohiddenbyfaces(nm,segstr,facestr,optionorg,optionsh):=(
+Nohiddenbyfaces(nm,segstr,Arg1,Arg2,Arg3):=( //180815from
+ regional(facestr,faceL,vtxL,options,optionsh);
+ if(isstring(Arg1),
+ facestr=Arg1;
+ options=Arg2;
+ optionsh=Arg3;
+ if(substring(facestr,0,3)=="phf",
+ faceL=parse(facestr);
+ tmp=replace(facestr,"phf","phv");
+ tmp=parse(tmp);
+ vtxL=apply(tmp,replace(#,"3d",""));
+
+ ,
+ faceL=parse(facestr);
+ );
+ ,
+ faceL=Arg1;
+ vtxL=Arg2;
+ options=Arg3;
+ optionsh=[];
+ );
+ Nohiddenbyfaces(nm,segstr,faceL,vtxL,options,optionsh);
+);
+Nohiddenbyfaces(nm,segstr,faceL,vtxL,optionorg,optionsh):=(
//help:Nohiddenbyfaces("1","phf3d1");
//help:Nohiddenbyfaces("1","ax3d","phf3d1");
-//help:Nohiddenbyfaces(options1=["dr"]);
+//help:Nohiddenbyfaces("1","ax3d",phf3d1,phv3d1);
+//help:Nohiddenbyfaces(options1=["dr","Eps=10^(-2)"]);
//help:Nohiddenbyfaces(options2=["do"]);
- regional(Eps,namen,nameh,options,segL,faceL,vtxL,rng,seg,face,
- flg,ctr,tmp,tmp1,tmp2,Ltype,Noflg,eqL,opstr,opcindy,frnL,frhL);
- Eps=10^(-4);
+ regional(Eps,namen,nameh,options,segL,rng,seg,face,
+ ctr,tmp,tmp1,tmp2,Ltype,Noflg,eqL,color,opstr,opcindy,frnL,frhL);
+ Eps=10^(-2);
namen="frn"+nm;
nameh="frh"+nm;
if(isstring(segstr),
-// segL=parse(segstr);
- segL=[segstr]; // 16.08.19
+ tmp=parse(segstr);//180714from
+ if(islist(tmp),
+ if(isstring(tmp_1),
+ segL=tmp;
+ ,
+ segL=[segstr];
+ );
+ );//180714to
,
segL=segstr;
);
@@ -2930,59 +3281,42 @@ Nohiddenbyfaces(nm,segstr,facestr,optionorg,optionsh):=(
segL=apply(segL,parse(#));
);
);
- segL=Flattenlist(segL);
- flg=0;
- if(isstring(facestr),
- if(substring(facestr,0,3)=="phf", // 16.08.19from
- faceL=parse(facestr);
- tmp=replace(facestr,"phf","phv"); // 16.02.10 from
- tmp=parse(tmp);
- vtxL=apply(tmp,replace(#,"3d","")); // 16.02.10 until
- flg=1;
- ,
- faceL=parse(facestr);
- );
- );
- if(flg==0,
- if(length(faceL)==2, // 16.08.19until
- vtxL=facestr_1;
- faceL=facestr_2;
- ,
- vtxL=facestr;
- faceL=[1..length(vtxL)];
+ tmp1=Flattenlist(segL); //180816from
+ segL=[];
+ forall(tmp1,tmp2,
+ forall(1..(length(tmp2)-1),
+ segL=append(segL,[tmp2_#,tmp2_(#+1)]);
);
- );
-// Hidden="";
+ ); //180816from
options=optionorg;
tmp=Divoptions(options);
Ltype=tmp_1;
Noflg=tmp_2;
eqL=tmp_5;
+ color=tmp_(length(tmp)-2);
opstr=tmp_(length(tmp)-1);
opcindy=tmp_(length(tmp));
-// forall(eqL,
-// tmp=indexof(#,"=");
-// tmp1=Toupper(substring(#,0,1));
-// tmp2=substring(#,tmp,length(#));
-// if(tmp1=="H",
-// Hidden=tmp2;
-// );
-// );
-
+ forall(eqL, //180815from
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(tmp_1);
+ if(substring(tmp1,0,3)=="EPS",
+ Eps=parse(tmp_2);
+ options=remove(options,[#]);
+ );
+ );//180815to
ctr=1;
frnL=[];
frhL=[];
forall(segL,seg,
rng=[0,1];
forall(faceL,face,
- rng=Nohiddensegs(seg,rng,face,vtxL);
+ rng=Nohiddensegs(seg,rng,face,vtxL,Eps);
);
forall(1..length(rng)/2,
tmp=rng_(2*#-1);
tmp1=seg_1+tmp*(seg_2-seg_1);
tmp=rng_(2*#);
tmp2=seg_1+tmp*(seg_2-seg_1);
-// tmp=remove(options,eqL);
tmp=append(options,"Msg=nodisp"); // 15.06.22
Spaceline("-"+namen+"n"+text(ctr),[tmp1,tmp2],tmp);
frnL=append(frnL,namen+"n"+text(ctr)+"3d");
@@ -3007,7 +3341,9 @@ Nohiddenbyfaces(nm,segstr,facestr,optionorg,optionsh):=(
tmp1=seg_1+tmp*(seg_2-seg_1);
tmp=rng_(2*#);
tmp2=seg_1+tmp*(seg_2-seg_1);
- if(length(optionsh)>0,tmp=optionsh,tmp=["do"]);
+ tmp=select(optionsh,indexof(#,"=")>0); //180815from
+ tmp=remove(optionsh,tmp);
+ if(length(tmp)==0,tmp=append(optionsh,"do")); //180815to
tmp=append(tmp,"Msg=nodisp"); // 15.06.22
Spaceline("-"+nameh+"n"+text(ctr),[tmp1,tmp2],tmp);
frhL=append(frhL,nameh+"n"+text(ctr)+"3d");
@@ -3297,13 +3633,13 @@ Sf3data(nm,funstr,var1org,var2org,optionorg):=(
[sfdtuL,sfdtvL];
);
-Sfbdparadata(nm,fd):=
- Sfbdparadata(nm,fd,[],["nodisp"]);
-Sfbdparadata(nm,fd,options):=
- Sfbdparadata(nm,fd,options,["nodisp"]);
-Sfbdparadata(nm,fdorg,optionorg,optionsh):=(
-//help:Sfbdparadata("1",Fd);
-//help:Sfbdparadata(options2=["Wait=60",division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
+SfbdparadataR(nm,fd):=
+ SfbdparadataR(nm,fd,[],["nodisp"]);
+SfbdparadataR(nm,fd,options):=
+ SfbdparadataR(nm,fd,options,["nodisp"]);
+SfbdparadataR(nm,fdorg,optionorg,optionsh):=(
+//help:SfbdparadataR("1",Fd);
+//help:SfbdparadataR(options2=["Wait=60",division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
regional(fd,options,name3,name3h,waiting,
eqL,reL,strL,fname,tmp,tmp1,tmp2,flg,wflg);
tmp=ConvertFdtoC(fdorg);//180430(2lines)
@@ -3402,13 +3738,13 @@ Addpoints(ptlist):=(
ADDPOINT;
);
-Crvsfparadata(nm,crv,sf,fd):=
- Crvsfparadata(nm,crv,sf,fd,[],["nodisp"]);
-Crvsfparadata(nm,crv,sf,fd,options):=
- Crvsfparadata(nm,crv,sf,fd,options,["nodisp"]);
-Crvsfparadata(nm,crvstr,sfstr,fdorg,optionorg,optionsh):=(
-//help:Crvsfparadata("1","ax3d","sfbd3d1",fd);
-//help:Crvsfparadata(options2=[division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
+CrvsfparadataR(nm,crv,sf,fd):=
+ CrvsfparadataR(nm,crv,sf,fd,[],["nodisp"]);
+CrvsfparadataR(nm,crv,sf,fd,options):=
+ CrvsfparadataR(nm,crv,sf,fd,options,["nodisp"]);
+CrvsfparadataR(nm,crvstr,sfstr,fdorg,optionorg,optionsh):=(
+//help:CrvsfparadataR("1","ax3d","sfbd3d1",fd);
+//help:CrvsfparadataR(options2=[division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
regional(gd,out,fd,options,name3,name3h,
eqL,reL,strL,fname,rfname,waiting,tmp,tmp1,tmp2,tmp3,flg,wflg);
tmp=replace(crvstr,"3d","2d");
@@ -3477,7 +3813,7 @@ Crvsfparadata(nm,crvstr,sfstr,fdorg,optionorg,optionsh):=(
reL=Rsform(reL);
tmp=append(tmp,reL);
);
- tmp1=[DqDq(fname),DqDq(name3),name3,DqDq(name3h),name3h];
+ tmp1=[Dqq(fname),Dqq(name3),name3,Dqq(name3h),name3h];
cmdL=concat(cmdL,[
name3+"=Crvsfparadata",tmp,
name3h+"=CRVSFHIDDENDATA",[],
@@ -3506,13 +3842,13 @@ Crvsfparadata(nm,crvstr,sfstr,fdorg,optionorg,optionsh):=(
);
);
-Crv3onsfparadata(nm,crv3d,sf,fd):=
- Crvs3onfparadata(nm,crv3d,sf,fd,[],["nodisp"]);
-Crv3onsfparadata(nm,crv3d,sf,fd,options):=
- Crv3onsfparadata(nm,crv3d,sf,fd,options,["nodisp"]);
-Crv3onsfparadata(nm,crv3dstr,sfstr,fdorg,optionorg,optionsh):=(
-//help:Crv3onsfparadata("1","sc1","sfbd3d1",fd);
-//help:Crv3onsfparadata(options2=[division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
+Crv3onsfparadataR(nm,crv3d,sf,fd):=
+ Crvs3onfparadataR(nm,crv3d,sf,fd,[],["nodisp"]);
+Crv3onsfparadataR(nm,crv3d,sf,fd,options):=
+ Crv3onsfparadataR(nm,crv3d,sf,fd,options,["nodisp"]);
+Crv3onsfparadataR(nm,crv3dstr,sfstr,fdorg,optionorg,optionsh):=(
+//help:Crv3onsfparadataR("1","sc1","sfbd3d1",fd);
+//help:Crv3onsfparadataR(options2=[division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
regional(gd,out,fd,options,name3,name3h,
eqL,reL,strL,fname,rfname,waiting,tmp,tmp1,tmp2,tmp3,flg,wflg);
tmp1=replace(crv3dstr,"3d","2d");
@@ -3608,13 +3944,13 @@ Crv3onsfparadata(nm,crv3dstr,sfstr,fdorg,optionorg,optionsh):=(
);
);
-Crv2onsfparadata(nm,crv2d,sf,fd):=
- Crvs2onfparadata(nm,crv2d,sf,fd,[],["nodisp"]);
-Crv2onsfparadata(nm,crv2d,sf,fd,options):=
- Crv2onsfparadata(nm,crv2d,sf,fd,options,["nodisp"]);
-Crv2onsfparadata(nm,crv2dstr,sfstr,fdorg,optionorg,optionsh):=(
-//help:Crv2onsfparadata("1","pa1","sfbd3d1",fd);
-//help:Crv2onsfparadata(options2=[division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
+Crv2onsfparadataR(nm,crv2d,sf,fd):=
+ Crvs2onfparadataR(nm,crv2d,sf,fd,[],["nodisp"]);
+Crv2onsfparadataR(nm,crv2d,sf,fd,options):=
+ Crv2onsfparadataR(nm,crv2d,sf,fd,options,["nodisp"]);
+Crv2onsfparadataR(nm,crv2dstr,sfstr,fdorg,optionorg,optionsh):=(
+//help:Crv2onsfparadataR("1","pa1","sfbd3d1",fd);
+//help:Crv2onsfparadataR(options2=[division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
regional(gd,out,fd,options,name3,name3h,
eqL,reL,strL,fname,rfname,waiting,tmp,tmp1,tmp2,tmp3,flg,wflg);
Changestyle(crv2dstr,["nodisp"]);
@@ -3711,13 +4047,13 @@ Crv2onsfparadata(nm,crv2dstr,sfstr,fdorg,optionorg,optionsh):=(
);
);
-Wireparadata(nm,sf,wr1,wr2,fd):=
- Wireparadata(nm,sf,fd,wr1,wr2,[],["nodisp"]);
-Wireparadata(nm,sf,fd,wr1,wr2,options):=
- Wireparadata(nm,sf,fd,wr1,wr2,options,["nodisp"]);
-Wireparadata(nm,sfstr,fdorg,wr1,wr2,optionorg,optionsh):=(
-//help:Wireparadata("1","sfbd3d1",fd,5,5);
-//help:Wireparadata(options2=[division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
+WireparadataR(nm,sf,wr1,wr2,fd):=
+ WireparadataR(nm,sf,fd,wr1,wr2,[],["nodisp"]);
+WireparadataR(nm,sf,fd,wr1,wr2,options):=
+ WireparadataR(nm,sf,fd,wr1,wr2,options,["nodisp"]);
+WireparadataR(nm,sfstr,fdorg,wr1,wr2,optionorg,optionsh):=(
+//help:WireparadataR("1","sfbd3d1",fd,5,5);
+//help:WireparadataR(options2=[division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
regional(fd,options,name3,name3h,outreg,
eqL,reL,strL,fname,rfname,waiting,tmp,tmp1,tmp2,flg,wflg);
name3="wire3d"+nm;
@@ -3814,18 +4150,18 @@ Wireparadata(nm,sfstr,fdorg,wr1,wr2,optionorg,optionsh):=(
);
);
-Intersectcrvsf(nm,crv,fd):=Intersectcrvsf(nm,crv,fd,"",[]);
-Intersectcrvsf(nm,crv,fd,Arg):=(
+IntersectcrvsfR(nm,crv,fd):=Intersectcrvsf(nm,crv,fd,"",[]);
+IntersectcrvsfR(nm,crv,fd,Arg):=(
if(isstring(Arg),
- Intersectcrvsf(nm,crv,fd,Arg,[]);
+ IntersectcrvsfR(nm,crv,fd,Arg,[]);
,
- Intersectcrvsf(nm,crv,fd,"",Arg);
+ IntersectcrvsfR(nm,crv,fd,"",Arg);
);
);
-Intersectcrvsf(nm,crvstr,fdorg,bdyeq,optionorg):=(
-//help:Intersectcrvsf("1",curve,fd);
-//help:Intersectcrvsf("1",curve,fd,curveequation);
-//help:Intersectcrvsf(options=[Np([50,50]),Eps(0.01)]);
+IntersectcrvsfR(nm,crvstr,fdorg,bdyeq,optionorg):=(
+//help:IntersectcrvsfR("1",curve,fd);
+//help:IntersectcrvsfR("1",curve,fd,curveequation);
+//help:IntersectcrvsfR(options=[Np([50,50]),Eps(0.01)]);
regional(name,crv,fd,options,reL,fname,crvfname,argR,
waiting,tmp,tmp1,tmp2,flg,wflg,pts); name="crvsf"+nm;
name="crvsf"+nm;
@@ -3904,13 +4240,13 @@ Intersectcrvsf(nm,crvstr,fdorg,bdyeq,optionorg):=(
parse(name);
);
-Sfcutparadata(nm,eqstr,sf,fd):=
- Sfcutparadata(nm,eqstr,sf,fd,[]);
-Sfcutparadata(nm,eqstr,sf,fd,options):=
- Sfcutparadata(nm,eqstr,sf,fd,options,["nodisp"]);
-Sfcutparadata(nm,eqstrorg,sf,fdorg,optionorg,optionsh):=(
-//help:Sfcutparadata("1","x+y+z=1","sfbd3d1",fd);
-//help:Sfcutparadata(options2=[Division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
+SfcutparadataR(nm,eqstr,sf,fd):=
+ SfcutparadataR(nm,eqstr,sf,fd,[]);
+SfcutparadataR(nm,eqstr,sf,fd,options):=
+ SfcutparadataR(nm,eqstr,sf,fd,options,["nodisp"]);
+SfcutparadataR(nm,eqstrorg,sf,fdorg,optionorg,optionsh):=(
+//help:SfcutparadataR("1","x+y+z=1","sfbd3d1",fd);
+//help:SfcutparadataR(options2=[Division(c(50,50)),Eps1(0.01), Eps2(0.05)]);
regional(gd,out,fd,options,name3,name3h,eqstr,
eqL,reL,strL,fname,rfname,waiting,tmp,tmp1,tmp2,tmp3,flg,wflg);
tmp=Strsplit(eqstrorg,"=");
@@ -3969,7 +4305,7 @@ Sfcutparadata(nm,eqstrorg,sf,fdorg,optionorg,optionsh):=(
reL=Rsform(reL);
tmp=append(tmp,reL);
);
- tmp1=[DqDq(fname),DqDq(name3),name3,DqDq(name3h),name3h];
+ tmp1=[Dqq(fname),Dqq(name3),name3,Dqq(name3h),name3h];
tmp2=replace(rfname,".txt",".Rdata");
cmdL=concat(cmdL,[
"print",[Dqq("sfcut"+nm)], //18.02.22
@@ -4009,7 +4345,6 @@ Skeletonparadata(nm,pltdata1,pltdata2):=Skeletondatacindy(nm,pltdata1,pltdata2);
Skeletonparadata(nm,pltdata1org,pltdata2org,options):=
Skeletondatacindy(nm,pltdata1org,pltdata2org,options);
-
////////////// new skeleton 2018.01.04 not completed and slow////////////////
Skeletondatacindy(nm):=Skeletondatacindy(nm,[]);
@@ -4079,9 +4414,13 @@ Skeletondatacindy(nm,pltdata1org,pltdata2org,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
+ if(color!=KCOLOR, //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
+ if(color!=KCOLOR, //180904
+ Texcom("}");//180722
+ );
,
if(Noflg==1,Ltype=0);
);
@@ -4262,7 +4601,7 @@ Skeletondatacindy(nm,pltdata1org,pltdata2org,options):=(
forall(1..(length(Data)),jj,
Gd=Data_jj;
if((length(Gd)>1)
- & (norm(Ptcrv(1,Gd)-Ptcrv(2,Gd))>Eps),
+ & (Norm(Ptcrv(1,Gd)-Ptcrv(2,Gd))>Eps),
PtD=[];
forall(1..(length(Gd)),
tmp=Gd_#;
@@ -4360,12 +4699,12 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
tmp=Plt2_(nn1+1);
ptb=tmp_(1..2);
zb=tmp_3;
- if(norm(pta-ptb)<Eps,
+ if(Norm(pta-ptb)<Eps,
contflg=1;
);
);
if(contflg==0,
- t1=norm(pta-pt)/norm(pta-ptb);
+ t1=Norm(pta-pt)/Norm(pta-ptb);
z1=(1-t1)*za+t1*zb;
tmp=Dmat_(Dind_ii_1..Dind_ii_2);
tmp1=tmp_nn2;
@@ -4374,12 +4713,12 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
tmp2=tmp_(nn2+1);
ptb=tmp2_(1..2);
zb=tmp2_3;
- if(norm(pta-ptb)<Eps,
+ if(Norm(pta-ptb)<Eps,
contflg=1;
);
);
if(contflg==0,
- t2=norm(pta-pt)/norm(pta-ptb);
+ t2=Norm(pta-pt)/Norm(pta-ptb);
z2=(1-t2)*za+t2*zb;
if(z1<z2-Eps2,
if(length(ClipL)==0,
@@ -4396,7 +4735,7 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
tmp1=pt1_2-pt1_1;
tmp2=ptb-pta;
tmp3=Dotprod(tmp1,tmp2);
- tmp3=tmp3/norm(tmp1)/norm(tmp2);
+ tmp3=tmp3/Norm(tmp1)/Norm(tmp2);
tmp=1-0.5*tmp3^2;
tmp1=concat(pt,[nn1,t1,R0/tmp]);
ClipL=append(ClipL,tmp1);
@@ -4424,7 +4763,7 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
contflg=0;
if(breakflg==0,
ptq=PointonCurve(jj,pt1);
- if(norm(pt-ptq)<Rr,
+ if(Norm(pt-ptq)<Rr,
contflg=1;
);
if(contflg==0,
@@ -4442,7 +4781,7 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
forall(1..10,
hh=hh*0.5;
ptq=PointonCurve(t1+hh,pt1);
- if(norm(pt-ptq)<Rr,
+ if(Norm(pt-ptq)<Rr,
t2=t2-hh;
,
t1=t1+hh;
@@ -4456,7 +4795,7 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
contflg=0;
if(breakflg==0,
ptq=PointonCurve(jj,pt1);
- if(norm(pt-ptq)<Rr,
+ if(Norm(pt-ptq)<Rr,
contflg=1;
);
if(contflg==0,
@@ -4474,7 +4813,7 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
forall(1..10,
hh=hh*0.5;
ptq=PointonCurve(t1+hh,pt1);
- if(norm(pt-ptq)<Rr,
+ if(Norm(pt-ptq)<Rr,
t1=t1+hh;
,
t2=t2-hh;
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt
index 4f23caa52b0..921167a0311 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1logr.txt
@@ -1,3 +1,94 @@
+// 20181030
+// Drawprocess,Workprocess changed (dispflg added)
+// 20181026
+// Findarea changed ( default of length=1)
+// 20181020
+// if(color!=KCOLOR => if((Noflg==0)&(color!=KCOLOR)
+// Setscaling,... ([SCALEX,SCALEY])
+// 20181018
+// Arrowheaddata,Arrowhead, Arrowdata changed (let pcrd be default )
+// Setscaling moved from basic2
+// 20181017
+// Ketinit,Changesetting changed (.ketcindy.conf and ketcindy.conf)
+// 20181016
+// Setwindow debugged (Pcrd removed)
+// 20181013
+// FindareaO, Findarea changed ( case of a curve with line segment)
+// Pointdata changed ( Size option )
+// 20181005
+// Hatchdata changed (option "Max=[1st,2nd]", second=total+restof1st)
+// 20181003
+// Hatchdata changed (option "Out=","Max=" added. "Out=" is for HatchdataR )
+// Hatchdata debugged (case of multiple points)
+// 20181001
+// Ketinit changed ( Ketinit(work) for workdirectory )
+// 20180929
+// Shade changed ("En=y" option added)
+// 20180928
+// Paramplot changed (case of stationary point, name -option)
+// Polarplot added
+// Divoptions changed (color in case of scalar*list)
+// 20180913
+// Chengesetting, Ketinit changed (getname() used)
+// 20180908
+// Ketinit changed (SlideMargin added)
+// 20180904
+// Color setting changed ( for KCOLOR)
+// 20180902
+// Arrowhead changed ( head trimmed if Inwindow==false )
+// 20180817
+// Ketinit changed (GPACK added)
+// Plotdata debugged ( Exc )
+// 20180801
+// Framedata changed ( Option "corner"("center") added to call Framedata2)
+// 20180723
+// Nearestptcrv changed ( for geometric point )
+// Paramoncurve(pP,Gdata) changed (for geometric point)
+// 20180722
+// color localized
+// Findarea changed (FindareaP,FindareaO)
+//20180720
+// Derivative, Tangentplot changed ( ch option added, coping with case of no interesects)
+//20180719
+// Listplot,Arrowdata changed ("Cutend"option added)
+// Derivative, Tangentplot changed ( Oshima's formula used )
+//20180718
+// Derivative chnaged (for plotdata)
+// Tangentplot added
+//20180717
+// Enclosing debugged ( min => min+Eps0)
+// Makehatch debugged (case where same point )
+// Hatchdata debugged ( "s",... )
+//20180716
+// Enclosing debugged ( selection of KL)
+//20180714
+// Setfiles changed ( OCNAME added )
+//20180713
+// Enclosing debugged (for Lineplot : distance of pts added )
+//20180711
+// Listplot,Pointdata changed (color localized )
+// Ptselected ( =Isptselected )
+//20180708
+// Integrate changed (Integratefn (o))
+// Polygonplot changed ( putpoint only in case ispoint(B), Geo)
+//20180707
+// Enclosing changed (epspara=1)
+//20180706
+// Enclosing changed (Enclosing2 => Enclosing)
+// Isptselected added
+// Hatchdata changed (Interval > *2 )
+// Enclosing debugged
+//20180705
+// Arrowhead debugged ( color )
+// Paramark debugged (Bname )
+//20180704
+// Drawsegmark debugged ( color option)
+//20180624
+// Ovaldata debugged ( case where Rc= 0)
+//20180619
+// Hatchdata debugged ( ns..ne=>ns..ne-1, near point removed )
+//20180618
+// Setfiles,Setparent,Changework changed (for null string)
//20180613
// Shade changed ( name, pointlist supported, Com2nd("before"))
// Shade debugged (color,opcindy)
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs
index 9dcb76c6d09..d466f9fe530 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic1r.cs
@@ -9,14 +9,14 @@
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
-//
+// f
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("KeTCindy V.3.2.1(20180615)");
+println("KeTCindy V.3.2.2(20181030)");
println(ketjavaversion());
-println("ketcindylibbasic1(20180613) loaded");
+println("ketcindylibbasic1(20181030) loaded");
//help:start();
@@ -37,11 +37,19 @@ println("ketcindylibbasic1(20180613) loaded");
Ch=[0]; ChNum=1;
-Ketinit():=Ketinit(1);
-//help:Ketinit();
-Ketinit(sy):=Ketinit(sy,[-5,5],[-5,5]);
-Ketinit(sy,rangex,rangey):=(
- regional(pt,tmp,tmp1,tmp2,letterc,boxc,shadowc,mboxc);
+////%Ketinit start////
+Ketinit():=Ketinit("fig",1,[-5,5],[-5,5]); //181001
+Ketinit(Arg):=(//181001from
+ if(isstring(Arg),
+ Ketinit(Arg,1,[-5,5],[-5,5]);
+ ,
+ Ketinit("fig",Arg,[-5,5],[-5,5]);
+ );
+);
+Ketinit(work,sy,rangex,rangey):=(//181001to
+ //help:Ketinit();
+ //help:Ketinit("");
+ regional(pt,tmp,tmp1,tmp2,letterc,boxc,shadowc,mboxc);
PenThickInit=8;
ULEN="1cm";
MEMORI=0.05;//18.01.15from
@@ -58,7 +66,7 @@ Ketinit(sy,rangex,rangey):=(
TenSizeInit=0.02;
TenSize=TenSizeInit;
YaSize=1; YaAngle=18; YaPosition=1;
- YaThick=1; YaStyle='tf';
+ YaThick=1; YaStyle="tf";
KETPICCOUNT=1;
KCOLOR=[0,0,0];
GLIST=[];
@@ -84,6 +92,7 @@ Ketinit(sy,rangex,rangey):=(
OutFileLIst=[]; // 15.10.22
FigPdfList=[]; // 16.04.08
ADDPACK=[]; // 16.05.16
+ GPACK="tpic"; //180817
ErrFlag=0;
setdirectory(Dirwork);
if(!isstring(Fhead), // 17.10.13from, 17.11.12
@@ -109,11 +118,10 @@ Ketinit(sy,rangex,rangey):=(
if(substring(Dircdy,0,1)==pathsep(),
Dircdy=substring(Dircdy,1,length(Dircdy));
);
-// Changesetting([gethome(), gethome()+"\Desktop","C:"]); //180405
- ,
-// Changesetting([gethome(),gethome()+"/Desktop"]);
);
- Changework(Dircdy+pathsep()+"fig"); //180329to
+ Changesetting(Homehead+pathsep()+getname()); //180913
+ Changesetting(Dircdy); //181017
+ Changework(Dircdy+pathsep()+work); //180329to,181001
Fnametex=Fhead+".tex";
FnameR=Fhead+".r";
FnamebodyR=Fhead+"body.r";
@@ -153,6 +161,7 @@ Ketinit(sy,rangex,rangey):=(
shadowc=[0,0,0,0.5]; mboxc="yellow"; //17.03.02 regional debugged
SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3,
letterc,mboxc,mboxc,mboxc,62,2,letterc];
+ SlideMargin=[0,0]; //180908
ThinDense=0.1;//17.01.08
if(indexof(PathS,"-5.")>0,//17.12.03from
LibnameS=Dirlib+pathsep()+"ketpicsciL5";
@@ -163,29 +172,28 @@ Ketinit(sy,rangex,rangey):=(
LibnameS=replace(LibnameS,"ketpic","ketpic2e");
);//17.12.03until
);
+////%Ketinit end////
-Changesetting(dirL):=( //180329
- regional(fname,tmp1,flg);
- fname="changesetting.txt";
- tmp1=apply(dirL,#+pathsep()+"ketcindy");
- tmp1=prepend(Dircdy,tmp1);
- flg=0;
- forall(tmp1,
- if(flg==0,
- if(isexists(#,fname),
- setdirectory(#);
- import(fname);
- println(fname+" imported from "+#);
- flg=1;
- );
+////%Changesetting start////
+Changesetting(dir):=( //181017
+ regional(fname);
+ fname="ketcindychange.txt";
+ if(!isexists(dir,fname),
+ if(dir==Dircdy,
+ fname="ketcindy.conf";
+ ,
+ fname=".ketcindy.conf";
);
);
- if(flg==0,
- println(fname+" not exists in "+text(tmp1));
- println(" Put "+fname+" in one of folders above");
+ if(isexists(dir,fname),
+ println("read "+fname+" in "+dir);
+ setdirectory(dir);
+ import(fname);
);
-);
+); //181017to
+////%Changesetting end////
+////%Cindyname start////
Cindyname():=Getcdyname();
Cdyname():=Getcdyname();
Getcdyname():=( //17.12.27
@@ -194,7 +202,9 @@ Getcdyname():=( //17.12.27
out=text(curkernel());
out=replace(out,".cdy","");
);
+////%Cindyname end////
+////%Setwindow start////
Setwindow():=Setwindow("Msg=yes");
Setwindow(str):=(
regional(tmp,tmp1,tmp2,msg);
@@ -229,31 +239,56 @@ Setwindow(xrange,yrange):=(
XMAX=xrange_2;
YMIN=yrange_1;
YMAX=yrange_2;
- Putpoint("SW",Pcrd([XMIN,YMIN]));//17.05.30
- Putpoint("NE",Pcrd([XMAX,YMAX]));//17.05.30
+ Putpoint("SW",[XMIN,YMIN]);//181016
+ Putpoint("NE",[XMAX,YMAX]);//181016
// Ketinit();
);
+////%Setwindow end////
+////%Setfiles start////
+Setfiles():=Setfiles(""); //180618
Setfiles(file):=( // 17.01.16
//help:Setfiles(file);
+ if(length(file)>0, //180618
Fhead=file;
Fnametex=Fhead+".tex";
FnameR=Fhead+".r"; //17.10.14
FnamebodyR=Fhead+"body.sce";
Fnameout=Fhead+".txt";
+ OCNAME=Fhead; //180714 for obj
+ ,
+ println("Fhead="+Dqq(Fhead)); //180618
+ );
);
+////%Setfiles end////
+////%Setparent start////
+Setparent():=Setparent("");
Setparent(file):=( // 17.11.27
//help:Setparent(file);
+ if(length(file)>0, //180618
Texparent=file;
+ ,
+ if(isstring(Texparent), //180618from
+ println("Texparent="+Dqq(Texparent));
+ ,
+ println("Texparent not defined");
+ );
+ ); //180618to
);
+////%Setparent end////
+////%Dqq start////
Dqq(str):=DqDq(str); //18.02.11
+////%Dqq end////
+////%DqDq start////
DqDq(str):=(
//help(Dqq("ab"); => Dq+"ab"+Dq)
unicode("0022")+str+unicode("0022");
);
+////%DqDq end////
+////%Tab2list start////
Tab2list(dtstr):=Tab2list(dtstr,[]);
Tab2list(dtstrorg,options):=(
//help:Tab2list(datastr);
@@ -317,12 +352,16 @@ Tab2list(dtstrorg,options):=(
);
out;
);
+////%Tab2list end////
+////%Columnlist start////
Columnlist(dt,list):=( // 16.09.04
//help:Columnlist(dt,1..3);
apply(dt,#_list);
);
+////%Columnlist end////
+////%Dispmat start////
Dispmat(dt):=( // 16.09.16
//help:Dispmat(dt);
regional(htm,crm,lfm,row,tmp,tmp1,tmp2);
@@ -346,7 +385,9 @@ Dispmat(dt):=( // 16.09.16
print(tmp2);
println();
);
+////%Dispmat end////
+////%Sep1000 start////
Sep1000(va):=( //17.07.18
//help:Sep1000(1344555);
//help:Sep1000([12456,55567]);
@@ -366,9 +407,11 @@ Sep1000(va):=( //17.07.18
);
out;
);
+////%Sep1000 end////
-factorial(n):=(
-//help:factorial(5);
+////%Factorial start////
+Factorial(n):=(
+//help:Factorial(5);
regional(out);
out=1;
forall(1..n,
@@ -376,9 +419,11 @@ factorial(n):=(
);
out;
);
+////%Factorial end////
-norm(v1):=( // 16.09.01
-//help:norm([2,1,3]);
+////%Norm start////
+Norm(v1):=( // 16.09.01
+//help:Norm([2,1,3]);
regional(out,tmp,tmp1,tmp2);
out=0;
forall(1..(length(v1)),
@@ -387,11 +432,13 @@ norm(v1):=( // 16.09.01
out=sqrt(out);
out;
);
-norm(v1,v2):=(
- norm(v2-v1);
+Norm(v1,v2):=(
+ Norm(v2-v1);
);
+////%Norm end////
// 16.03.28
+////%Removespace start////
Removespace(str):=(
//help:Removespace(" a b c ");
regional(tmp,flg,out);
@@ -418,7 +465,9 @@ Removespace(str):=(
);
out=substring(out,0,tmp);
);
+////%Removespace end////
+////%Indexall start////
Indexall(str,key):=(
regional(rest,out,flg,tmp,tmp1,);
out=[];
@@ -438,8 +487,11 @@ Indexall(str,key):=(
);
out;
);
+////%Indexall end////
+////%Strsplit start////
Strsplit(str,key):=( //180505
+//help:Strsplit(string,"=");
regional(start,out,tmp1,tmp2);
tmp1=Indexall(str,key);
out=[]; start=0;
@@ -450,8 +502,12 @@ Strsplit(str,key):=( //180505
out=append(out,substring(str,start,length(str)));
out;
);
+////%Strsplit end////
+////%Parlevel start////
Parlevel(str):=Bracket(str); // 16.05.22from
+////%Parlevel end////
+////%Bracket start////
Bracket(str):=Bracket(str,"()");
Bracket(str,br):=(
//help:Bracket(string,"()");
@@ -475,7 +531,9 @@ Bracket(str,br):=(
);
out;
);
+////%Bracket end////
+////%Pardiagram start////
Pardiagram(str):=Pardiagram(str,[20]);
Pardiagram(str,options):=(
//help:Pardiagram(exprstr);
@@ -573,12 +631,15 @@ Pardiagram(str,options):=(
);
out;
);
+////%Pardiagram end////
+////%Changework start////
+Changework():=Changework(""); //180618
Changework(dirorg):=Changework(dirorg,["Sub=y"]);
Changework(dirorg,options):=( //16.10.21
//help:Changework(directory);
//help:Changework(Dircdy+"fig");
-//help:Changework(options=["Sub=y"]);
+//help:Changework(options=["Sub=n"(not to make folder fig]);
regional(dir,subdir,tmp,,eqL,makesub);
tmp=Divoptions(options);
eqL=tmp_5; //180605from
@@ -607,9 +668,14 @@ Changework(dirorg,options):=( //16.10.21
dir=substring(dir,0,tmp-1);
); //17.11.24until
if(dir=="" % !isexists(dir,""),
- println("Directory "+dir+" not exist, so set to "+Dircdy);//180604(2lines)
- Dirwork=Dircdy;
- ErrFlag=-1;
+ if(dir=="", //180618from
+ println("Dirwork="+Dqq(Dirwork));
+ ,
+ println("Directory "+dir+" not exist, so "+Dqq(Dirwork)+" not changed");
+ ); //180618to
+// println("Directory "+dir+" not exist, so set to "+Dircdy);//180604(2lines)
+// Dirwork=Dircdy;
+// ErrFlag=-1;
,
if(length(subdir)>0, //180605
if(makesub==1,//180606from
@@ -629,7 +695,9 @@ Changework(dirorg,options):=( //16.10.21
);
);
);
+////%Changework end////
+////%Changestyle start////
Changestyle(nameL,style):=(
//help:Changestyle(["sgAB"],["da"]);
regional(nmL,name,Ltype,Ltypeorg,Noflg,color,opcindy,tmp);
@@ -648,9 +716,13 @@ Changestyle(nameL,style):=(
(indexof(#,"("+name)==0)%(indexof(#,"Shade")>0)); // 15.05.23,16.12.13
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("}");//180722
+ );
,
if(Noflg==1,Ltype=0);
);
@@ -659,7 +731,9 @@ Changestyle(nameL,style):=(
);
);
);
+////%Changestyle end////
+////%Op start////
Op(n,object):=( // 16.05.25
//help:Op(4,[1,2,3,4]);
//help:Op(3,"abcd");
@@ -673,7 +747,27 @@ Op(n,object):=( // 16.05.25
);
out;
);
+////%Op end////
+
+////%Ptselected start////
+Ptselected():=Isptselected(allpoints());//180711(2lines)
+Ptselected(ptlist):=Isptselected(ptlist);
+Isptselected():=Isptselected(allpoints()); //180706
+Isptselected(ptlist):=(
+//help:Ptselected();
+//help:Isptselected();
+ regional(flg);
+ flg=0;
+ forall(ptlist,
+ if(flg==0,
+ if(isselected(#),flg=1);
+ );
+ );
+ if(flg==0,false,true);
+);
+////%Ptselected end////
+////%Finddef start////
Finddef(G):=(
regional(def,tmp,tmp1,tmp2,tmp3);
if(isstring(G),tmp=parse(G),tmp=G);
@@ -694,7 +788,9 @@ Finddef(G):=(
);
tmp;
);
+////%Finddef end////
+////%Findgeoinfo start////
Findgeoinfo(geo):=(
regional(out,tmp,tmp1,tmp2);
tmp=Finddef(geo);
@@ -721,7 +817,9 @@ Findgeoinfo(geo):=(
);
out;
);
+////%Findgeoinfo end////
+////%Dependgeo start////
Dependgeo(geo):=(
regional(tmp,tmp1,tmp2,out);
tmp=Finddef(geo);
@@ -743,13 +841,30 @@ Dependgeo(geo):=(
);
out;
);
+////%Dependgeo end////
-Workprocess():=Workprocess(300);
-Workprocess(nn):=Drawprocess(nn);
-Drawprocess():=Drawprocess(300);
-Drawprocess(nn):=(
+////%Workprocess start////
+Workprocess():=Drawprocess(300,["Disp=n"]); //181030
+Workprocess(nn):=(
+//help:Workprocess();
+ Drawprocess(nn,["Disp=n"]);
+);
+////%Workprocess end////
+////%Drawprocess start////
+Drawprocess():=Drawprocess(300,["Disp=y"]);
+Drawprocess(nn):=Drawprocess(nn,["Disp=y"]);
+Drawprocess(nn,options):=(
//help:Workprocess();
- regional(All,added,remain,out,flg,tmp,tmp1,tmp2);
+ regional(All,added,remain,out,flg,dispflg,eqL,tmp,tmp1,tmp2);
+ tmp=Divoptions(options); //181030from
+ eqL=tmp_5;
+ dispflg="Y";
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ tmp2=Toupper(substring(tmp_2,0,1));
+ if(tmp1=="D",dispflg=tmp2);
+ ); //181030to
tmp=remove(allpoints(),[NE,SW,TH,FI]);
tmp1=select(tmp,
substring(text(#),length(text(#))-1,length(text(#)))!="z");
@@ -769,13 +884,22 @@ Drawprocess(nn):=(
if(length(remain)==0,flg=1);
);
);
- println("Process of drawing");
+ if(dispflg=="Y",
+ println("Process of drawing");
+ );
+ tmp1=[];//181030from
forall(out,
- println(Dependgeo(parse(#)));
+ tmp=Dependgeo(parse(#));
+ tmp1=append(tmp1,tmp);
+ if(dispflg=="Y",
+ println(Dependgeo(parse(#)));
+ );
);
- out;
+ tmp1;//181030to
);
+////%Drawprocess end////
+////%Sortpointlist start////
Sortpointlist(list):=(
regional(plist,ilist,jj,kk,flg,p1,p2,in1,in2,
tmp,tmp1,tmp2,out);
@@ -809,7 +933,9 @@ Sortpointlist(list):=(
);
out;
);
+////%Sortpointlist end////
+////%Toupper start////
Toupper(str):=(
//help:Toupper("Abc");
regional(alphabet,out,tmp,tmp1);
@@ -826,7 +952,9 @@ Toupper(str):=(
);
out;
);
+////%Toupper end////
+////%Textformat start////
Textformat(value,dig):=(
//help:Textformat(2/3,4);
//help:Textformat([gr1,gr2],5);
@@ -852,7 +980,9 @@ Textformat(value,dig):=(
);
tmp1;
);
+////%Textformat end////
+////%Sprintf start////
Sprintf(value,dig):=(
//help:Sprintf(5.1,4);
regional(vv,tmp,tmp1);
@@ -871,6 +1001,7 @@ Sprintf(value,dig):=(
);
vv;
);
+////%Sprintf end////
Assign(str):=( // old
regional(out);
@@ -882,6 +1013,7 @@ Assign(str):=( // old
out;
);
+////%Assign start////
Assign(funstr,vrL):=(
regional(nn,out,tmp,tmp1);
nn=length(vrL)/2;
@@ -935,7 +1067,9 @@ Assign(funstr,varname,rep):=(
funstr=tmp2+funstr;
funstr;
);
+////%Assign end////
+////%MeasureDepth start////
MeasureDepth(list):=(
regional(tmp,tmp1,Depth,Flg);
Flg=0;
@@ -962,7 +1096,9 @@ MeasureDepth(list):=(
);//180501
Depth;
);
+////%MeasureDepth end////
+////%Flattenlist start////
Flattenlist(pltlist):=(
//help:Flattenlist([[2,3],[[1,2],[5,6]]]);
regional(Out,nn,Dt,ii,tmp,flg);
@@ -984,10 +1120,13 @@ Flattenlist(pltlist):=(
);
Out;
);
+////%Flattenlist end////
+////%Divoptions start////
Divoptions(options):=(
//help:Divoptions(options);
- regional(Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,color,opstr,opcindy,flg,tmp,tmp1,tmp2);
+ regional(Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,color,opstr,opcindy,flg,
+ tmp,tmp1,tmp2);
Ltype="dr"; // 2015.01.13
Noflg=0;
Inflg=0;
@@ -1013,7 +1152,7 @@ Divoptions(options):=(
tmp1=Toupper(tmp_1);
tmp2=tmp_2;
if(tmp1=="COLOR",
- if(substring(tmp2,0,1)=="[",
+ if(indexof(tmp2,"[")>0, //180928
tmp1=parse(tmp2);
color=tmp1;
if(length(tmp1)==4,
@@ -1095,7 +1234,9 @@ Divoptions(options):=(
);
[Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,color,opstr,opcindy];
);
+////%Divoptions end////
+////%Dotprod start////
Dotprod(vec1,vec2):=(
//help:Dotprod(vec1,vec2);
regional(v1,v2,tmp);
@@ -1103,7 +1244,9 @@ Dotprod(vec1,vec2):=(
if(ispoint(vec2),v2=vec2.xy,v2=vec2);
v1*v2;
);
+////%Dotprod end////
+////%Crossprod start////
Crossprod(a,b):=(
//help:Crossprod(vec1,vec2);
regional(tmp1,tmp2,tmp3,Out);
@@ -1117,35 +1260,45 @@ Crossprod(a,b):=(
);
Out;
);
+////%Crossprod end////
+////%Ptstart start////
Ptstart(Fig):=(
//help:Ptstart("gr1");
regional(tmp);
if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.21
tmp_1;
);
+////%Ptstart end////
+////%Ptend start////
Ptend(Fig):=(
//help:Ptend("gr1");
regional(tmp);
if(isstring(Fig),tmp=parse(Fig),tmp=Fig);
tmp_(length(tmp)); // 15.04.12
);
+////%Ptend end////
+////%Numptcrv start////
Numptcrv(Fig):=(
//help:Numptcrv("gr1");
regional(tmp);
if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 15.12.23
length(tmp);
);
+////%Numptcrv end////
+////%Ptcrv start////
Ptcrv(Num,Fig):=(
//help:Ptcrv(10,"gr1");
regional(tmp);
if(isstring(Fig),tmp=parse(Fig),tmp=Fig);
tmp_Num;
);
+////%Ptcrv end////
+////%Invert start////
Invert(Fig):=(
//help:Invert("gr1");
regional(tmp);
@@ -1160,15 +1313,21 @@ Invert(nm,Fig,options):=(
tmp=Invert(Fig);
Listplot(name,tmp,options);
);// until 16.01.27
-
-Paramoncrv(pP,Gdata):=(
- regional(Tmp,PtL);
+////%Invert end////
+
+////%Paramoncrv start////
+Paramoncrv(pP,Gdata):=Paramoncurve(pP,Gdata);//180723
+////%Paramoncrv end////
+////%ParamonCurve start////
+ParamonCurve(point,Gdata):=(
+//help:ParamonCurve(A,"gr1");//180723(3lines)
+ regional(Tmp,PtL,pP);
+ if(ispoint(point),pP=point.xy,pP=point);
// Eps=10^(-8);
if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata);
Tmp=Nearestpt(pP,PtL);
Tmp_2;
);
-
ParamonCurve(pP,nN,plist):=(
//help:ParamonCurve(A,10,"gr1");
regional(PtL,Out,Pa,Pb,vV,vW,sS);
@@ -1187,8 +1346,12 @@ ParamonCurve(pP,nN,plist):=(
);
Out;
);
+////%ParamonCurve end////
+////%Pointoncrv start////
Pointoncrv(tT,PtL):=PointonCurve(tT,PtL);
+////%Pointoncrv end////
+////%PointonCurve start////
PointonCurve(tTorg,Gdata):=(
//help:PointonCurve(20.5,"gr1");
regional(tT,Out,Eps,nN,sS,Pa,Pb,PtL);
@@ -1208,7 +1371,9 @@ PointonCurve(tTorg,Gdata):=(
);
Out;
);
+////%PointonCurve end////
+////%Koutenseg start////
Koutenseg(pA,pB,pC,pD):=Koutenseg(pA,pB,pC,pD,[]);
Koutenseg(pA,pB,pC,pD,options):=(
regional(Eps0,Eps,Eps2,pV,Sv2,Out,pP,pQ,Flg,p1,p2,q1,q2,
@@ -1318,9 +1483,11 @@ Koutenseg(pA,pB,pC,pD,options):=(
);
Out;
);
+////%Koutenseg end////
///////// Start of old Intersect ////////////
+////%IntersectcrvsPp start////
IntersectcrvsPp(Gr1,Gr2):=IntersectcrvsPp(Gr1,Gr2,[]);
IntersectcrvsPp(Gr1,Gr2,options):=(
//help:IntersectcrvsPp("gr1","pa1");
@@ -1465,7 +1632,9 @@ IntersectcrvsPp(Gr1,Gr2,options):=(
); // 15.04.06 until
Out;
);
+////%IntersectcrvsPp end////
+////%Intersectcrvs start////
Intersectcrvs(Gr1,Gr2):=Intersectcrvs(Gr1,Gr2,[]);
//help:Intersectcrvs("gr1","pa1");
Intersectcrvs(Gr1,Gr2,options):=(
@@ -1473,10 +1642,13 @@ Intersectcrvs(Gr1,Gr2,options):=(
tmp1=IntersectcrvsPp(Gr1,Gr2,options);
apply(tmp1,#_1);
);
+////%Intersectcrvs end////
+
///////// End of old Intersect ////////////
/////////// Start of new Intersect //////////////
+////%Intersectline start////
Intersectline(p1,v1,p2,v2):=(
regional(Eps,d,dt,ds,t,s,pt,out,tmp,tmp1,tmp2,tmp3);
Eps=10^(-5);
@@ -1500,7 +1672,9 @@ Intersectline(p1,v1,p2,v2):=(
);
out;
);
+////%Intersectline end////
+////%Intersectseg start////
Intersectseg(seg1,seg2):=Intersectseg(seg1,seg2,0.01);
Intersectseg(seg1org,seg2org,Eps1):=(
regional(Eps,seg1,seg2,p1,p2,q1,q2,t,s,pt,n,pts,out,dist,
@@ -1602,7 +1776,9 @@ Intersectseg(seg1org,seg2org,Eps1):=(
);
out;
);
+////%Intersectseg end////
+////%Osplineseg start////
Osplineseg(list):=Osplineseg(list,[]);
Osplineseg(ptlist,optionsorg):=(
regional(tmp,tmp1,tmp2,list,ptL,ctrL,Eps,Eps0,
@@ -1621,7 +1797,9 @@ Osplineseg(ptlist,optionsorg):=(
out=Bezier("",[p1,p2],ctrL,options);
out;
);
+////%Osplineseg end////
+////%Intersectpartseg start////
Intersectpartseg(crv1,crv2,ii,jj,Eps1,Eps2):=(
Intersectpartseg(crv1,crv2,ii,jj,Eps1,Eps2,10*Eps2);
);
@@ -1640,7 +1818,7 @@ Intersectpartseg(crv1org,crv2org,ii,jj,Eps1,Eps2,Dist):=(
seg2=[crv2_jj,crv2_(jj+1)];
tmp1=seg1_2-seg1_1;
tmp2=seg2_2-seg2_1;
- snang=abs(Crossprod(tmp1,tmp2))/(norm(tmp1)*norm(tmp2));
+ snang=abs(Crossprod(tmp1,tmp2))/(Norm(tmp1)*Norm(tmp2));
tmp=Intersectseg(seg1,seg2,Eps1);
dst=tmp_1;
if(dst<Eps,
@@ -1725,39 +1903,9 @@ Intersectpartseg(crv1org,crv2org,ii,jj,Eps1,Eps2,Dist):=(
);
out;
);
+////%Intersectpartseg end////
-if(1==0,
-
-Collectnear(ptdL,Eps2):=(
- regional(Eps,gL,rL,numL,ii,jj,flg,tmp,tmp1);
- Eps=10^(-4);
- gL=[ptdL_1];
- rL=ptdL_(2..(length(ptdL)));
- flg=0;
- forall(1..(length(ptdL)-1),ii,
- if(flg==0,
- numL=[];
- forall(1..(length(rL)),jj,
- tmp1=100;
- forall(gL,
- tmp=|#_1-rL_jj_1|;
- if(tmp<tmp1,tmp1=tmp);
- );
- if(tmp1<Eps2,numL=append(numL,jj));
- );
- if(length(numL)==0,
- flg=1;
- ,
- gL=concat(gL,rL_(numL));
- rL=remove(rL,rL_(numL));
- );
- );
- );
- [gL,rL];
-);
-
-);
-
+////%Collectsameseg start////
Collectsameseg(ptdL):=(
regional(Eps,gL,rL,numL,ii,jj,flg,tmp,tmp1,tmp2,tmp1md,
dst,kk,s1,e1,s2,e2);
@@ -1801,7 +1949,9 @@ Collectsameseg(ptdL):=(
);
[gL,rL];
);
+////%Collectsameseg end////
+////%IntersectcurvesPp start////
IntersectcurvesPp(crv1org,crv2org):=IntersectcurvesPp(crv1org,crv2org,[]);
IntersectcurvesPp(crv1org,crv2org,options):=(
//help:IntersectcurvesPp(crv1,crv2);
@@ -1906,7 +2056,9 @@ IntersectcurvesPp(crv1org,crv2org,options):=(
);
out;
);
+////%IntersectcurvesPp end////
+////%Intersectcurves start////
Intersectcurves(crv1org,crv2org):=Intersectcurves(crv1org,crv2org,[]);
Intersectcurves(crv1org,crv2org,options):=(
//help:Intersectcurves(crv1,crv2);
@@ -1915,9 +2067,11 @@ Intersectcurves(crv1org,crv2org,options):=(
tmp=IntersectcurvesPp(crv1org,crv2org,options);
tmp=apply(tmp,#_1);
);
+////%Intersectcurves end////
///////////End of new Intersect //////////////
+////%NearestptcrvPhy start////
NearestptcrvPhy(point,PL):=(
regional(tmp,pP,plist);
pP=Pcrd(point);
@@ -1928,14 +2082,19 @@ NearestptcrvPhy(point,PL):=(
tmp=tmp_1;
[tmp_1/SCALEX,tmp_2/SCALEY];
);
+////%NearestptcrvPhy end////
+////%Nearestptcrv start////
Nearestptcrv(point,plist):=(
//help:Nearestptcrv(A,"gr1");
- regional(tmp);
- tmp=Nearestpt(point,plist);
+ regional(tmp,pt);//180723(3lines)
+ if(ispoint(point),pt=point.xy,pt=point);
+ tmp=Nearestpt(pt,plist);
tmp_1;
);
+////%Nearestptcrv end////
+////%Nearestpt start////
Nearestpt(point,PL2):=(
regional(PL1,PL,Ans,Flg,Eps,pA,Pm,Im,Sm,Nn,Ni,
a1,b1,a2,b2,v1,v2,x1,x2,Tmp,rT,pP,sS,Lm,Pm,Sm,Flg);
@@ -1990,8 +2149,69 @@ Nearestpt(point,PL2):=(
);
Ans;
);
-
-Derivative(fun,var,value):=Derivative(fun,var,value,[]);
+////%Nearestpt end////
+
+////%Derivative start////
+Derivative(pdstr,ptinfo):=Derivative(pdstr,ptinfo,[]);//180719
+Derivative(Arg1,Arg2,Arg3):=(//1807120
+//help:Derivative(plotdata,"x=2");
+//help:Derivative(plotdata,"y=1");
+ regional(pdstr,ptinfo,options,name,v,pt,par,p0,p1,p2,p3,
+ pQ,pR,cc,m1,m2,out,tmp,tmp1,reL,ch,flg);
+ if(!islist(Arg3),
+ Derivative(Arg1,Arg2,Arg3,[]);
+ ,
+ pdstr=Arg1; ptinfo=Arg2; options=Arg3;
+ tmp=Divoptions(options);
+ reL=tmp_5;
+ ch=1;
+ if(length(reL)>0,
+ ch=reL_1;
+ options=remove(options,reL);
+ );
+ flg=0;//1807120
+ name="";
+ if(isstring(ptinfo),
+ tmp=Strsplit(ptinfo,"=");
+ name=Toupper(substring(tmp_1,0,1));
+ v=parse(tmp_2);
+ if(name=="X",
+ tmp1=Lineplot("",[[v,0],[v,1]],["nodata"]);
+ ,
+ tmp1=Lineplot("",[[0,v],[1,v]],["nodata"]);
+ );
+ tmp=IntersectcurvesPp(pdstr,tmp1);
+ if(length(tmp)==0,
+ println(" Derivative cannot be found");
+ out="";
+ flg=1;
+ ,
+ tmp=sort(tmp,[#_3]);
+ pt=tmp_ch_1;
+ par=tmp_ch_2;
+ );
+ ,
+ pt=ptinfo_1;
+ par=ptinfo_2;
+ );
+ if(flg==0,
+ p0=Pointoncurve(par-1,pdstr);
+ p1=pt;
+ p2=Pointoncurve(par+1,pdstr);
+ p3=Pointoncurve(par+2,pdstr);
+ tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2);
+ cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp;
+ pQ=p1+cc*(p2-p0);
+ pR=p2+cc*(p1-p3);
+ m1=-p1_1+pQ_1;
+ m2=-p1_2+pQ_2;
+ if(name=="",out=[m1,m2]);
+ if(name=="X",out=m2/m1);
+ if(name=="Y",out=m1/m2);
+ );
+ out;
+ );
+);//180720to
Derivative(fun,var,value,options):=(
//help:Derivative("x^3","x",2);
regional(eqL,method,eps,str,x1,x2,y1,y2,tmp,tmp1,tmp2);
@@ -2024,24 +2244,78 @@ Derivative(fun,var,value,options):=(
(y2-y1)/(x2-x1);
);
);
+////%Derivative end////
-Integrate(pltdata,range):=Integrate(pltdata,range,[]);
-Intergrate(Arg1,Arg2,Arg3):=(
- regional(pltdata,range,options,fnstr,vartr);
- if(islist(Arg2),
- pltdata=Arg1;
- range=Arg2;
- options=Arg3;
- Integrate(pltdata,range,options);
+////%Tangentplot start////
+Tangentplot(nm,pdstr,ptinfo):=Tangentplot(nm,pdstr,ptinfo,[]); //180720
+Tangentplot(nm,pdstr,ptinfo,optionsorg):=(
+//help:Tangentplot("1",pdstr,"x=2");
+//help:Tangentplot("1",pdstr,"y=3");
+//help:Tangentplot("1",pdstr,[[1,2],20.5]);
+//help:Tangentplot(Options2=[choice(1)]);
+ regional(name,v,pt,par,options,reL,ch,tmp,flg);
+ options=optionsorg; //1807120from
+ tmp=Divoptions(options);
+ reL=tmp_6;
+ ch=1;
+ if(length(reL)>0,
+ ch=reL_1;
+ options=remove(options,reL);
+ );
+ flg=0;//1807120to
+ name="";
+ if(isstring(ptinfo),
+ tmp=Strsplit(ptinfo,"=");
+ name=Toupper(substring(tmp_1,0,1));
+ v=parse(tmp_2);
+ if(name=="X",
+ tmp1=Lineplot("",[[v,0],[v,1]],["nodata"]);
+ ,
+ tmp1=Lineplot("",[[0,v],[1,v]],["nodata"]);
+ );
+ tmp=IntersectcurvesPp(pdstr,tmp1);
+ if(length(tmp)==0,//1807120
+ println(" Derivative cannot be calculated");
+ flg=1;
+ ,
+ tmp=sort(tmp,[#_3]);//1807120(3lines)
+ pt=tmp_ch_1;
+ par=tmp_ch_2;
+ );
,
- fnstr=Arg1;
- vastr=Arg2;
- range=Arg3;
- Integrate(fnstr,vastr,range,[]);
+ pt=ptinfo_1;
+ par=ptinfo_2;
+ );
+ if(flg==0,
+ tmp=Derivative(pdstr,[pt,par]);
+ if(vname=="X",
+ Lineplot("tn"+nm,[pt,pt+tmp],options);
+ ,
+ Lineplot("tn"+nm,[pt,pt+tmp],options);
+ );
);
);
+////%Tangentplot end////
-Integrate(pltdata,range,options):=(
+////%Integrate start////
+Integrate(Arg1,Arg2):=( //180708from
+ if(isstring(Arg2),
+ Integratefn(Arg1,Arg2,[]);
+ ,
+ Integratedt(Arg1,Arg2,[]);
+ );
+);
+Integrate(Arg1,Arg2,options):=(
+ if(isstring(Arg2),
+ Integratefn(Arg1,Arg2,options);
+ ,
+ Integratedt(Arg1,Arg2,options);
+ );
+);//180708to
+////%Integrate end////
+
+////%Integratedt start////
+Integratedt(pltdata,range,options):=(
//help:Integrate("gr1",[1,3]);
//help:Integrate(options=["Rule=o"]);
regional(tmp,tmp1,eqL,Rule,pdata,Sm,ptP,ptQ,list,va1,va2);
@@ -2074,28 +2348,42 @@ Integrate(pltdata,range,options):=(
Sm;
);
);
+////%Integratedt end////
-Integrate(fnstr,vastr,range,options):=(
-//help:Integrate("sin(x)","x",[0,pi],["Num=100","Rule=s"]);
- regional(tmp,tmp1,Sm,Lx,Rx,va1,va2,Num,Waysx,ex,dx,xn,yn,x0,x1,x2,y0,y1,y2);
+////%Integratefn start////
+Integratefn(fnstr,rngstr,options):=( //180708from
+//help:Integrate("sin(x)","x=[0,pi]",["Num=100","Rule=o"]);
+ regional(Sm,Lx,Rx,va1,va2,Num,Way,sx,ex,dx,xn,yn,
+ x0,x1,x2,y0,y1,y2,tmp,tmp1,tmp2,eqL,var,range,plt);
Num=100;
- Way="t";
- forall(options,
- if(indexof(#,"=")>0,
- if(indexof(#,"N=")>0,
- Num=parse(substring(#,indexof(#,"="),length(#)));
- );
- if(indexof(#,"Num=")>0,
- Num=parse(substring(#,indexof(#,"="),length(#)));
- );
- if(Toupper(substring(#,0,1))=="R",
- tmp=indexof(#,"=");
- Way=substring(#,tmp,tmp+1);
- );
- );
+ Way="o";
+ tmp=Divoptions(options);
+ eqL=tmp_5;
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ tmp2=tmp_2;
+ if(tmp1=="N",
+ Num=parse(tmp2);
+ );
+ if(tmp1=="R",
+ tmp2=substring(tmp2,0,1);
+ );
);
- Sm=0;
+ tmp=Strsplit(rngstr,"=");
+ var=tmp_1;
+ range=parse(tmp_2);
+ if(Way=="o",
+ sx=range_1;
+ ex=range_2;
+ dx=(ex-sx)/Num;
+ xn=apply(0..Num,sx+#*dx);
+ yn=apply(xn,parse(Assign(fnstr,[var,textformat(#,5)])));
+ plt=apply(1..(Num+1),[xn_#,yn_#]);
+ Sm=IntegrateO(plt,range);
+ );//180708to
if(Way=="t",
+ Sm=0;
forall(1..Num,
Lx=range_1+(range_2-range_1)*(#-1)/Num;
Rx=range_1+(range_2-range_1)*#/Num;
@@ -2103,7 +2391,9 @@ Integrate(fnstr,vastr,range,options):=(
va2=parse(replace(fnstr,vastr,textformat(Rx,5)));
Sm=Sm+(va1+va2)*(Rx-Lx)/2;
);
- ,
+ );
+ if(Way=="s",
+ Sm=0;
sx=range_1;
ex=range_2;
dx=(ex-sx)/Num;
@@ -2122,7 +2412,9 @@ Integrate(fnstr,vastr,range,options):=(
);
Sm;
);
+////%Integratefn end////
+////%IntegrateO start////
IntegrateO(p0org,p1org,p2org,p3org):=(
regional(p0,p1,p2,p3,pQ,pR,cc,p01,p02,
p11,p12,p21,p22,p31,p32, tmp);
@@ -2203,8 +2495,10 @@ IntegrateO(pltdata,rangeorg):=(
);
Sm;
);
+////%IntegrateO end////
-Findarea(pdstr):=(
+////%FindareaP start////
+FindareaP(pdstr):=( //180722
//help:Findarea("sgABCA");
regional(pd,p1,p2,s,tmp);
if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
@@ -2218,24 +2512,64 @@ Findarea(pdstr):=(
if(s<0,s=-s);
s;
);
+////%FindareaP end////
-Findarea(pdstr):=( // 15.11.27
-//help:Findarea("cr1");
- regional(pd,p0,p1,p2,p3,s,tmp);
+////%FindareaO start////
+FindareaO(pdstr,len):=( // 18.10,13
+ regional(pd,p0,p1,p2,p3,s,tmp,Lflg);
if(isstring(pdstr),pd=parse(pdstr),pd=pdstr);
+ Lflg=0;
s=0;
forall(1..(length(pd)-1),
p1=pd_#;
p2=pd_(#+1);
- if(#==1,p0=pd_(length(pd)-1),p0=pd_(#-1));
- if(#==length(pd)-1,p3=pd_2,p3=pd_(#+2));
- tmp=IntegrateO(p0,p1,p2,p3);
+ if(Dist(p1,p2)<len,
+ if(#==1,p0=pd_(length(pd)-1),p0=pd_(#-1));
+ if(Dist(p0,p1)>len,p0=2*p1-p2);
+ if(#==length(pd)-1,p3=pd_2,p3=pd_(#+2));
+ if(Dist(p2,p3)>len,p3=2*p2-p1);
+ tmp=IntegrateO(p0,p1,p2,p3);
+ ,
+ tmp=(p1_2+p2_2)*(p2_1-p1_1)/2;
+ );
s=s+tmp;
);
if(s<0,s=-s);
s;
);
+////%FindareaO end////
+////%Findarea start////
+Findarea(pdstr):=Findarea(pdstr,[]);//180722from
+Findarea(pdstr,options):=(
+//help:Findarea("cr1");
+//help:Findarea(options=["Len=1"]);
+ regional(tmp,tmp1,tmp2,eqL,way,len,out);
+ tmp=Divoptions(options);
+ eqL=tmp_5;
+ way="O";
+ len=1;
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ tmp2=tmp_2;
+ if(tmp1=="W",
+ way=Toupper(substring(tmp2,0,1));
+ );
+ if(tmp1=="L",//181013from
+ len=parse(tmp2);
+ );//181013to
+ );
+ if(way=="O",
+ out=FindareaO(pdstr,len);//181013
+ ,
+ out=FindareaP(pdstr);
+ );
+ out;
+);//180722to
+////%Findarea end////
+
+////%Findlength start////
Findlength(pdstr):=(
//help:Findlength("gr1");
regional(pd,p1,p2,s,tmp);
@@ -2249,7 +2583,9 @@ Findlength(pdstr):=(
);
s;
);
+////%Findlength end////
+////%Inversefun start////
Inversefun(fnstr,rngstr,value):=(
regional(tmp,varstr,range,x1,x2,x3,va1,va2);
tmp=indexof(rngstr,"=");
@@ -2274,20 +2610,26 @@ Inversefun(fnstr,rngstr,value):=(
);
if(abs(va1)<=abs(va2),x1,x2);
);
+////%Inversefun end////
+////%Com0th start////
Com0th(String):=(
regional(str);
str=replace(String,LFmark,"");
COM0thlist=append(COM0thlist,str);
);
+////%Com0th end////
+////%Com1st start////
Com1st(String):=(
regional(str);
str=replace(String,LFmark,"");
GLIST=append(GLIST,str); // 15.05.27
// COM1stlist=append(COM1stlist,str);
);
+////%Com1st end////
+////%Com2nd start////
Com2nd(String):=Com2nd(String,["a"]);//180612
Com2nd(String,option):=(
// help:Com2nd(str,["before"]);
@@ -2300,13 +2642,17 @@ Com2nd(String,option):=(
COM2ndlist=append(COM2ndlist,str);
);//180612to
);
+////%Com2nd end////
+////%Com2ndpre start////
Com2ndpre(String):=(
regional(str);
str=replace(String,LFmark,"");
COM2ndlist=prepend(str,COM2ndlist);
);
+////%Com2ndpre end////
+////%Texcom start////
Texcom(strorg):=( //17.09.22
//help:Texcom("\color[cmyk]{0,0,0,0.5}");
regional(str);
@@ -2315,6 +2661,7 @@ Texcom(strorg):=( //17.09.22
str="Texcom("+Dq+str+Dq+")";
Com2nd(str);
);
+////%Texcom end////
Ketcindylogo():=(
//help:Ketcindylogo();
@@ -2367,6 +2714,7 @@ Drawlinetype(name,type):=(
);
);
+////%Setunitlen start////
Setunitlen():=(
println(ULEN);
);
@@ -2420,29 +2768,57 @@ Setunitlen(UI):=(
MARKLEN=MARKLENNow*1000/2.54/MilliIn;
MEMORI=MEMORINow*1000/2.54/MilliIn;
);
+////%Setunitlen end////
+////%Setmarklen start////
Setmarklen(ratio):=(
//help:Setmarklen(0.2);
MARKLEN=ratio*0.2;//16.11.01
Com2nd("Setmarklen("+textformat(ratio,5)+")");
);
+////%Setmarklen end////
+////%Setorigin start////
Setorigin(point):=(
//help:Setorigin([1,2]);
Com2nd("Setorigin("+textformat(point,5)+")");
);
+////%Setorigin end////
+////%Fontsize start////
Fontsize(sizestr):=(
//help:Fontsize("s");
Com2nd("Fontsize('"+sizestr+"')");
);
+////%Fontsize end////
+////%Setpen start////
Setpen(width):=(
//help:Setpen(2);
PenThick=PenThickInit*width; // 16.04.09
Com2nd("Setpen("+text(width)+")");
);
+////%Setpen end////
+
+////%Setscaling start////
+Setscaling(sc):=(
+//help:Setscaling(3);
+ regional(tmp);
+ tmp=format(sc,5);
+ if(!islist(sc),
+ SCALEX=1;
+ SCALEY=sc;
+ Com0th("Setscaling("+tmp+")");
+ ,
+ SCALEX=sc_1;
+ SCALEY=sc_2;
+ Com0th("Setscaling("+tmp_1+","+tmp_2+")");
+ );
+ Setwindow("Msg=no");
+);
+////%Setscaling end////
+////%Lcrd start////
Lcrd(pt):=(
regional(tmp);
if(ispoint(pt),
@@ -2452,7 +2828,9 @@ Lcrd(pt):=(
);
tmp;
);
+////%Lcrd end////
+////%Pcrd start////
Pcrd(pt):=(
regional(tmp);
if(ispoint(pt),
@@ -2462,7 +2840,9 @@ Pcrd(pt):=(
);
tmp;
);
+////%Pcrd end////
+////%LLcrd start////
LLcrd(pt):=(
regional(tmp);
if(ispoint(pt),
@@ -2473,7 +2853,9 @@ LLcrd(pt):=(
tmp=[tmp_1/SCALEX,tmp_2/SCALEY];
tmp;
);
+////%LLcrd end////
+////%Doscaling start////
Doscaling(pltdata):=(
regional(Level,Out,gL,gr,tmp);
if(ispoint(pltdata) % isreal(pltdata_1),
@@ -2502,7 +2884,9 @@ Doscaling(pltdata):=(
);
Out;
);
+////%Doscaling end////
+////%Unscaling start////
Unscaling(pltdata):=(
regional(Level,Out,gL,gr,tmp);
if(ispoint(pltdata) % isreal(pltdata_1),
@@ -2531,7 +2915,9 @@ Unscaling(pltdata):=(
);
Out;
);
+////%Unscaling end////
+////%Setpt start////
Setpt(n):=Ptsize(n);
//help:Setpt(5);
Ptsize(n):=(
@@ -2539,7 +2925,9 @@ Ptsize(n):=(
TenSize=TenSizeInit*n;
Com2nd("Setpt("+text(n)+")"); // 14.01.19
);
+////%Setpt end////
+////%Definecolor start////
Definecolor(name,data):=(
//help:Definecolor("mycolor",[1,1,1,0]);
regional(type,tmp);
@@ -2549,7 +2937,9 @@ Definecolor(name,data):=(
tmp="\definecolor{"+name+"}{"+type+"}{"+tmp+"}";
Texcom(tmp);
);
+////%Definecolor end////
+////%Setcolor start////
Setcolor(parorg):=( //180603renew
//help:Setcolor([1,0,0,1]);
//help:Setcolor([1,1,0]);
@@ -2578,7 +2968,9 @@ Setcolor(parorg):=( //180603renew
);
Com2nd(cstr);
);
+////%Setcolor end////
+////%ColorRgb2Cmyk start////
ColorRgb2Cmyk(clr):=(
// help:ColorRgb([0.2,0.5,0.1]);
regional(clrnew,tmp,black);
@@ -2588,7 +2980,9 @@ ColorRgb2Cmyk(clr):=(
clrnew=append(tmp,black);
clrnew;
);
+////%ColorRgb2Cmyk end////
+////%ColorCmyk2Rgb start////
ColorCmyk2Rgb(clr):=(
// help:ColorRgb([0.2,0.5,0.1,0.2]);
regional(clrnew,tmp,black);
@@ -2597,7 +2991,9 @@ ColorCmyk2Rgb(clr):=(
clrnew=tmp_(1..3);
clrnew;
);
+////%ColorCmyk2Rgb end////
+////%Colorrgbhsv start////
Colorrgbhsv(rgb):=(
regional(varR,varG,varB,varMin,varMax,delMax,hh,ss,vv,delR,delG,delB);
varR = rgb_1;
@@ -2631,7 +3027,9 @@ Colorrgbhsv(rgb):=(
);
[hh*360,ss,vv];
);
-
+////%Colorrgbhsv end////
+
+////%Colorhsvrgb start////
Colorhsvrgb(sL):=(
regional(tmp,tmp1,tmp2,tmp3,hi,ff,dL);
tmp=[sL_1/60,sL_2,sL_3];
@@ -2647,7 +3045,9 @@ Colorhsvrgb(sL):=(
if(hi==5,dL=tmp2_[4,1,2]);
dL;
);
+////%Colorhsvrgb end////
+////%Colorrgbhsl start////
Colorrgbhsl(rgb):=(
regional(rr,gg,bb,mn,mx,delta,deltaR,deltaG,deltaB,hh,ss,ll);
rr = rgb_1 ;
@@ -2685,7 +3085,9 @@ Colorrgbhsl(rgb):=(
);
[hh*360,ss,ll];
);
+////%Colorrgbhsl end////
+////%Colorhslrgb start////
Colorhslrgb(hsl):=(
regional(hh,ss,ll,rr,gg,bb,var1,var2);
hh=hsl_1/360;
@@ -2708,7 +3110,9 @@ Colorhslrgb(hsl):=(
);
[rr,gg,bb];
);
+////%Colorhslrgb end////
+////%hue2rgb start////
hue2rgb(vv1,vv2,vh):=(
regional(out);
if ( vh < 0.0 ,vh =vh+1);
@@ -2728,7 +3132,9 @@ hue2rgb(vv1,vv2,vh):=(
);
out;
);
+////%hue2rgb end////
+////%Colorrgbhwb start////
Colorrgbhwb(sL):=(
regional(dl1,dl2,dl3);
dl1 = Colorrgbhsl(sL)_1;//Colorcode("rgb","hsl",sL)_1;
@@ -2736,7 +3142,9 @@ Colorrgbhwb(sL):=(
dl3 = 1 - max(sL);
dL= [dl1, dl2 , dl3 ];
);
+////%Colorrgbhwb end////
+////%Colorhwbrgb start////
Colorhwbrgb(sLorg):=(
regional(sL,tmp,tmp1,tmp2,tmp3,ratio,ff,ii,vv,nn,dL,flg);
sL=sLorg;
@@ -2763,7 +3171,9 @@ Colorhwbrgb(sLorg):=(
);
dL;
);
+////%Colorhwbrgb end////
+////%Colorhslhsv start////
Colorhslhsv(sL):=(
regional(dl1,dl2,dl3,dL);
dl1=sL_1;
@@ -2780,7 +3190,9 @@ Colorhslhsv(sL):=(
);
dL;
);
+////%Colorhslhsv end////
+////%Colorcode start////
Colorcode(src,dest,sL):=(
//help:Colorcode("rgb","cmyk",[1,0.5,0]);
regional(tmp,tmp1,tmp2,tmp3,mn,mx,delta,black,dL,flg);
@@ -2867,7 +3279,9 @@ Colorcode(src,dest,sL):=(
dL;
);
+////%Colorcode end////
+////%Colorinfile start////
Colorinfile(filename,clrf,clrt):=(
regional(tmp,tmp1,tmp2,head,cstrL,chstrL,head,body);
if(length(clrf_1)==3,
@@ -2912,7 +3326,9 @@ Colorinfile(filename,clrf,clrt):=(
);
closefile(SCEOUT);
);
+////%Colorinfile end////
+////%GetLinestyle start////
GetLinestyle(str,name):=(
regional(noflg,tmp,tmp1,tmp2,Dop,Ltype,subflg);
Ltype=-1;
@@ -2965,7 +3381,9 @@ GetLinestyle(str,name):=(
);
Ltype;
);
+////%GetLinestyle end////
+////%Chunderscore start////
Chunderscore(str):=(
regional(flg,tmp,tmp1,tmp2,tmp3);
if(indexof(str,"]")>0,
@@ -3002,7 +3420,9 @@ Chunderscore(str):=(
);
tmp1;
);
+////%Chunderscore end////
+////%AddGraph start////
AddGraph(nm,pltdata):=AddGraph(nm,pltdata,[]);
AddGraph(nm,pltdata,options):=(
//help:AddGraph("1","imp1"); // 16.04.04
@@ -3091,16 +3511,22 @@ AddGraph(nm,pltdata,options):=(
); // 16.04.04 until
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
);
);
+////%AddGraph end////
+////%Joincrvs start////
Joincrvs(nm,plotstrL):=Joincrvs(nm,plotstrL,[]);
Joincrvs(nm,plotstrL,options):=(
//help:Joincrvs("1",["sgAB","sgDCB"]);
@@ -3184,17 +3610,23 @@ Joincrvs(nm,plotstrL,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
);
PtL;
);
+////%Joincrvs end////
+////%Partcrv start////
Partcrv(nm,pA,pB,PkLstr):=Partcrv(nm,pA,pB,PkLstr,[]);
Partcrv(nm,pA,pB,PkLstr,options):=(
//help:Partcrv("1",A,B,"sgABC");
@@ -3271,17 +3703,23 @@ Partcrv(nm,pA,pB,PkLstr,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
);
Ans;
);
+////%Partcrv end////
+////%Opcrvs start////
Opcrvs(num,Fig):=Opcrvs(num,Fig,["nodisp"]);
Opcrvs(num,Fig,options):=(
//help:Subgraph(2,"grfs");
@@ -3291,17 +3729,17 @@ Opcrvs(num,Fig,options):=(
tmp1=parse(tmp);
Listplot(name,tmp1,options);
);
+////%Opcrvs end////
-
+////%Pointdata start////
Pointdata(nm,list):=Pointdata(nm,list,[]);
Pointdata(nm,listorg,options):=(
//help:Pointdata("1",[2,4],["Size=5"]);
//help:Pointdata("2",[[2,3],[4,1]]);
regional(list,name,nameL,ptlist,opstr,opcindy,
- eqL,size,thick,tmp,tmp1,tmp2,tmp3,Ltype,Noflg,color);
+ eqL,dispflg,size,thick,tmp,tmp1,tmp2,tmp3,Ltype,Noflg,color);
name="pt"+nm;
nameL=name+"L";
- println("generate pointdata "+name);
tmp=Divoptions(options);
Ltype=tmp_1;
Noflg=tmp_2;
@@ -3310,15 +3748,24 @@ Pointdata(nm,listorg,options):=(
opstr=tmp_(length(tmp)-1);
color=tmp_(length(tmp)-2);
size="";
+ dispflg="Y";
if(length(eqL)>0,
forall(eqL,
- tmp=substring(#,0,1);
- if(tmp=="s" % tmp=="S",
- tmp=indexof(#,"=");
- size=substring(#,tmp,length(#));
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ tmp2=Toupper(substring(tmp_2,0,1));
+ if(tmp1=="S",
+ size=tmp2;
+ opcindy=opcindy+",size->"+text(size); //181013
+ );
+ if(tmp1=="D", //181030from
+ dispflg=tmp2;
);
);
);
+ if(dispflg=="Y",
+ println("generate pointdata "+name);
+ ); //181030to
if(isstring(listorg),list=parse(listorg),list=listorg); //17.10.23
if(MeasureDepth(list)==0,list=[list]);//180530
tmp=MeasureDepth(list);
@@ -3366,9 +3813,13 @@ Pointdata(nm,listorg,options):=(
if(length(size)>0,tmp1=parse(size),tmp1=1);
tmp1=max(tmp1,1)/8;
Setpen(tmp1); // 16.04.09 until
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("{");Com2nd("Setcolor("+color+")");//180711
+ );
Com2nd("Drwpt(list("+name+")"+opstr+")");
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("}");//180711
+ );
Setpen(thick); // 16.04.09
if(length(size)>0,
Com2nd("Setpt("+textformat(TenSize/TenSizeInit,1)+")");
@@ -3377,13 +3828,15 @@ Pointdata(nm,listorg,options):=(
);
ptlist;
);
+////%Pointdata end////
+////%Listplot start////
Listplot(nm,list,options):=(
//help:Listplot([A,B]);
// help:Listplot(["A","B"]);
//help:Listplot("1",[[2,1],[3,3]]);
-//help:Listplot(options2=["Msg=yes"]);
- regional(name,tmp,tmp1,ptlist,Ltype,opcindy,Noflg,eqL,Msg,color);
+//help:Listplot(options2=["Msg=y","Cutend=n"]);//180719
+ regional(name,cutend,tmp,tmp1,tmp2,ptlist,Ltype,opcindy,Noflg,eqL,Msg,color);
if(substring(nm,0,1)=="-", // 16.01.27 from
name=substring(nm,1,length(nm));
,
@@ -3396,15 +3849,23 @@ Listplot(nm,list,options):=(
color=tmp_(length(tmp)-2);
opcindy=tmp_(length(tmp));
Msg=1; // 15.09.17
+ cutend=[0,0];//180719
forall(eqL,
- tmp=substring(#,0,1);
- if(Toupper(tmp)=="M",
- tmp=indexof(#,"=");
- tmp1=substring(#,tmp,tmp+1); // 16.06.28
- if(Toupper(tmp1)=="N", // 16.06.28
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ tmp2=tmp_2;
+ if(tmp1=="M",
+ tmp=Toupper(substring(tmp2,0,1));
+ if(tmp=="N", // 16.06.28
Msg=0;
);
);
+ if(tmp1=="C",//180719from
+ tmp2=replace(tmp2,"[","");
+ tmp2=replace(tmp2,"]","");
+ cutend=tokenize(tmp2,",");
+ if(length(cutend)==1,cutend=[cutend_1,cutend_1]);
+ );//180719to
);
if(Noflg<3,
if(Msg==1,
@@ -3412,15 +3873,25 @@ Listplot(nm,list,options):=(
);
if(isstring(list_1),tmp=apply(list,parse(#)),tmp=list); // 15.03.24
ptlist=apply(tmp,Pcrd(#));
+ if(|cutend|>0,//180719from
+ tmp=ptlist_(length(ptlist))-ptlist_1;
+ tmp=tmp/|tmp|;
+ ptlist_1=ptlist_1+tmp*cutend_1;
+ ptlist_(length(ptlist))=ptlist_(length(ptlist))-tmp*cutend_2;
+ );//180719to
tmp=name+"="+textformat(ptlist,5);
parse(tmp);
- GLIST=append(GLIST,name+"=Listplot("+textformat(list,5)+")"); // 15.12.23
+ GLIST=append(GLIST,name+"=Listplot("+textformat(ptlist,5)+")"); // 180719
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("{");Com2nd("Setcolor("+color+")");//180711
+ );
Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("}");//180711
+ );
,
if(Noflg==1,Ltype=0);
);
@@ -3446,7 +3917,9 @@ Listplot(Arg1,Arg2):=(
);
);
Listplot(list):=Listplot(list,[]);
+////%Listplot end////
+////%Lineplot start////
Lineplot(nm,list,options):=(
//help:Lineplot([A,B]);
//help:Lineplot("1",[[2,1],[3,3]]);
@@ -3485,10 +3958,14 @@ Lineplot(nm,list,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -3512,14 +3989,16 @@ Lineplot(Arg1,Arg2):=(
);
);
Lineplot(list):=Lineplot(list,[]);
+////%Lineplot end////
+////%Plotdata start////
Plotdata(name1,func,variable):=Plotdata(name1,func,variable,[]);
Plotdata(name1,func,variable,options):=(
//help:Plotdata("1","sin(x)","x",["Num=100"]);
//help:Plotdata("2","x^2","x=[-1,1]");
//help:Plotdata("3","Fout(x)","x",["out"]);
regional(Fn,Va,tmp,tmp1,tmp2,eqL,name,Vname,x1,x2,dx,
- PdL,QdL,Num,Ec,Dc,Fun,Exfun,x,Ke,Eps,Pa,
+ PdL,Num,Ec,Dc,Fun,Exfun,x,Ke,Eps,Pa,
Ltype,Noflg,Inflg,Outflg,opstr,opcindy,color);
name="gr"+name1;
tmp=Divoptions(options);
@@ -3538,19 +4017,25 @@ Plotdata(name1,func,variable,options):=(
forall(eqL,
tmp=indexof(#,"=");
tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
if(substring(#,0,1)=="N",
Num=parse(tmp1);
+ opstr=opstr+","+Dqq(#);
);
if(substring(#,0,1)=="E",
- if(substring(tmp1,0,1)=="[",
+ if(substring(tmp1,0,1)=="[", //180817from
Ec=parse(tmp1);
+ tmp1=replace(tmp1,"[","c(");
+ tmp1=replace(tmp1,",",".0,");
+ tmp1=replace(tmp1,"]",".0)");
+ opstr=opstr+","+Dqq("Exc="+tmp1); //180817to
,
Exfun=tmp1;
+ opstr=opstr+","+Dqq(#);
);
);
if(substring(#,0,1)=="D",
Dc=parse(tmp1);
+ opstr=opstr+","+Dqq(#);
);
);
if(Inflg==0 & Outflg==0,
@@ -3578,10 +4063,26 @@ Plotdata(name1,func,variable,options):=(
if(length(Exfun)>0,
tmp=parse(Exfun);
if(abs(tmp)<Eps,
- if(length(Pdt)>0,
+ if(length(PdL)>0, //180817from
PdL=concat(PdL,["inf"]);
);
- );
+ ,
+ tmp=[xx,parse(Fun)];
+ if(length(PdL)>0,
+ tmp1=PdL_(length(PdL));
+ if(Norm(tmp,tmp1)<Dc,
+ PdL=append(PdL,tmp);
+ ,
+ if(tmp1=="inf",
+ PdL=append(PdL,tmp);
+ ,
+ PdL=concat(PdL,[["inf"],tmp]);
+ );
+ );
+ ,
+ PdL=[tmp];
+ );
+ ); //180817to
,
Pa=[];
if(xx-Ec_Ke<-Eps,
@@ -3655,9 +4156,13 @@ Plotdata(name1,func,variable,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("}");//180722
+ );
,
if(Noflg==1,Ltype=0);
);
@@ -3667,9 +4172,13 @@ Plotdata(name1,func,variable,options):=(
,
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("}");//180722
+ );
,
if(Noflg==1,Ltype=0);
);
@@ -3679,14 +4188,20 @@ Plotdata(name1,func,variable,options):=(
);
);
);
+////%Plotdata end////
-Paramplot(name1,funstr,variable):=Paramplot(name1,funstr,variable,[]);
-Paramplot(name1,funstr,variable,options):=(
+////%Paramplot start////
+Paramplot(nm,funstr,variable):=Paramplot(nm,funstr,variable,[]);
+Paramplot(nm,funstr,variable,options):=(
//help:Paramplot("1","[2*cos(t),sin(t)]","t=[0,2*pi]");
regional(name,Out,tmp,tmp1,tmp2,vname,func,str,Rng,Num,
Ec,Exfun,Dc,eqL,Fntmp,Vatmp,t1,t2,dt,tt,pa,ke,
Ltype,Noflg,Inflg,Outflg,opstr,opcindy,color);
- name="gp"+name1;
+ if(substring(nm,0,1)=="-", // 180928from
+ name=substring(nm,1,length(nm));
+ ,
+ name="gp"+nm;
+ ); //180929to
Eps=10^(-4);
tmp=Divoptions(options);
Ltype=tmp_1;
@@ -3704,19 +4219,25 @@ Paramplot(name1,funstr,variable,options):=(
forall(eqL,
tmp=indexof(#,"=");
tmp1=substring(#,tmp,length(#));
- opstr=opstr+",'"+#+"'";
if(substring(#,0,1)=="N",
Num=parse(tmp1);
+ opstr=opstr+","+Dqq(#);
);
if(substring(#,0,1)=="E",
- if(substring(tmp1,0,1)=="[",
+ if(substring(tmp1,0,1)=="[", //180817from
Ec=parse(tmp1);
+ tmp1=replace(tmp1,"[","c(");
+ tmp1=replace(tmp1,",",".0,");
+ tmp1=replace(tmp1,"]",".0)");
+ opstr=opstr+","+Dqq("Exc="+tmp1); //180817to
,
Exfun=tmp1;
+ opstr=opstr+","+Dqq(#);
);
);
if(substring(#,0,1)=="D",
Dc=parse(tmp1);
+ opstr=opstr+","+Dqq(#);
);
);
if(Inflg==0 & Outflg==0,
@@ -3759,7 +4280,9 @@ Paramplot(name1,funstr,variable,options):=(
Out=append(Out,pa);
,
if(|tmp-pa|<Dc,
- Out=append(Out,pa);
+ if(|tmp-pa|>Eps, //180928from
+ Out=append(Out,pa);
+ ); //180928to
,
Out=concat(Out,[["inf"],pa]);
);
@@ -3803,9 +4326,13 @@ Paramplot(name1,funstr,variable,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("}");//180722
+ );
,
if(Noflg==1,Ltype=0);
);
@@ -3815,10 +4342,14 @@ Paramplot(name1,funstr,variable,options):=(
,
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
if(Inflg==1,
@@ -3827,7 +4358,22 @@ Paramplot(name1,funstr,variable,options):=(
);
);
);
+////%Paramplot end////
+////%Polarplot start////
+// 180928
+Polarplot(name,radstr,varrng):=Polarplot(name,radstr,varrng,[]);
+Polarplot(name,radstr,varrng,option):=(
+//help:Polarplot("1","cos(t)","t=[0,2*pi]");
+ regional(tmp,var);
+ tmp=Strsplit(varrng,"=");
+ var=tmp_1;
+ tmp="("+radstr+")*[cos("+var+"),sin("+var+")]";
+ Paramplot("-polar"+name,tmp,varrng,option);
+);
+////%Polarplot end////
+
+////%Connectseg start////
Connectseg(Pdata):=(
regional(Eps,PlotL,vL,ctr,qd,ah,ao,flg,jj,
pp,qq,tmp,tmp1,tmp2);
@@ -3891,7 +4437,9 @@ Connectseg(Pdata):=(
);
PlotL;
);
+////%Connectseg end////
+////%Implicitplot start////
Implicitplot(name1,func,xrng,yrng):=Implicitplot(name1,func,xrng,yrng,[]);
Implicitplot(name1,func,xrng,yrng,options):=(
//help:Implicitplot("1","x^2+x*y+y^2=1","x=[-3,3]","y=[-3,3]");
@@ -4009,17 +4557,23 @@ Implicitplot(name1,func,xrng,yrng,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
);
out;
);
+////%Implicitplot end////
+////%Circledata start////
Circledata(cenrad):=Circledata(cenrad,[]);
Circledata(para1,para2):=(
//help:Circledata([A,B],["Rng=[0,pi/2]"]);
@@ -4116,17 +4670,23 @@ Circledata(nm,cenrad,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
);
Out;
);
+////%Circledata end////
+////%Framedata start////
Framedata():=Framedata(["dr"]);//16.10.29from
Framedata(list):=(
regional(pA,pB);
@@ -4154,45 +4714,67 @@ Framedata(Arg1,Arg2):=(
Framedata(name,list,options);
);
);
-Framedata(nm,list,options):=(
+Framedata(nm,list,optionsorg):=(
//help:Framedata();
//help:Framedata([C,A]);
//help:Framedata("1",[C,A]);
+//help:Framedata("1",[A,B],["corner"]);
//help:Framedata("1",[C,dx,dy]);
- regional(name,Out,tmp,tmp1,pB,x1,x2,y1,y2,dx,dy,
- opcindy,Ltype,Noflg,cent,dx,dy,color);
+ regional(name,options,Out,tmp,tmp1,pB,x1,x2,y1,y2,dx,dy,
+ opcindy,Ltype,Noflg,strL,type,cent,dx,dy,color);
name="fr"+nm;
+ options=optionsorg;
tmp=Divoptions(options);
Ltype=tmp_1;
Noflg=tmp_2;
- color=tmp_(length(tmp)-2);
- opcindy=tmp_(length(tmp));
- if(length(list)==2, // 15.05.12
- pA=Lcrd(list_1); pB=Lcrd(list_2);
- dx=abs(pB_1-pA_1); dy=abs(pB_2-pA_2);
- ,
- pA=Lcrd(list_1);
- dx=list_2; dy=list_3;
- );
- x1=pA_1-dx; x2=pA_1+dx;
- y1=pA_2-dy; y2=pA_2+dy;
- Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
- if(Noflg<3,
- println("generate Framedata "+name);
- tmp1=apply(Out,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- GLIST=append(GLIST,name+"=Framedata("+pA+","+dx+","+dy+")");
+ strL=tmp_7; //180801from
+ type="center";
+ forall(strL,
+ if(Toupper(#)=="CORNER",
+ type="corner";
+ options=remove(options,[#]);
+ );
+ if(Toupper(#)=="CENTER",
+ type="center";
+ options=remove(options,[#]);
+ );
);
- if(Noflg<2,
- if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
+ if(type=="corner",
+ Out=Framedata2(nm,list,options);
+ , //180801to
+ color=tmp_(length(tmp)-2);
+ opcindy=tmp_(length(tmp));
+ if(length(list)==2, // 15.05.12
+ pA=Lcrd(list_1); pB=Lcrd(list_2);
+ dx=abs(pB_1-pA_1); dy=abs(pB_2-pA_2);
,
- if(Noflg==1,Ltype=0);
+ pA=Lcrd(list_1);
+ dx=list_2; dy=list_3;
+ );
+ x1=pA_1-dx; x2=pA_1+dx;
+ y1=pA_2-dy; y2=pA_2+dy;
+ Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]];
+ if(Noflg<3,
+ println("generate Framedata "+name);
+ tmp1=apply(Out,Pcrd(#));
+ tmp=name+"="+textformat(tmp1,5);
+ parse(tmp);
+ GLIST=append(GLIST,name+"=Framedata("+pA+","+dx+","+dy+")");
+ );
+ if(Noflg<2,
+ if(isstring(Ltype),
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //181020
+ Texcom("}");//180722
+ );
+ ,
+ if(Noflg==1,Ltype=0);
+ );
+ GCLIST=append(GCLIST,[name,Ltype,opcindy]);
);
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
);
Out;
);
@@ -4217,17 +4799,23 @@ Framedata(nm,cent,dx,dy,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
);
Out;
);
+////%Framedata end////
+////%Framedata2 start////
Framedata2(nm,list):=Framedata2(nm,list,[]);
Framedata2(nm,list,options):=(
//help:Framedata2("1",[A,B]);
@@ -4236,7 +4824,9 @@ Framedata2(nm,list,options):=(
pB=Lcrd(list_2);
Framedata(nm,[pC,pB],options);
);
+////%Framedata2 end////
+////%Ovaldata start////
Ovaldata(nm,Pdata):=Ovaldata(nm,Pdata,[]);
Ovaldata(nm,Pdata,options):=(
//help:Ovaldata("1",[A,B]);
@@ -4264,13 +4854,17 @@ Ovaldata(nm,Pdata,options):=(
Dy=Pdata_3;
);
Point=Ctr+[Dx-Rc,Dy-Rc];
- tmp1=Circledata("1",[Point,Point+[Rc,0]],
- ["Rng=[0,pi/2]","Num=10","nodata"]);
tmp2=Listplot("1",[Ctr+[Dx-Rc,Dy],Ctr+[0,Dy]],
["nodata"]);
tmp3=Listplot("2",[Ctr+[Dx,0],Ctr+[Dx,Dy-Rc]],
["nodata"]);
- Graph=Joincrvs("1",[tmp3,tmp1,tmp2],["nodata"]);
+ if(Rc>0, //180624from
+ tmp1=Circledata("1",[Point,Point+[Rc,0]],
+ ["Rng=[0,pi/2]","Num=10","nodata"]);
+ Graph=Joincrvs("1",[tmp3,tmp1,tmp2],["nodata"]);
+ ,
+ Graph=Joincrvs("1",[tmp3,tmp2],["nodata"]);
+ ); //180624to
tmp1=Reflectdata("1",[Graph],[Ctr,Ctr+[0,1]],["nodata"]);
Graph=Joincrvs("1",[Graph,tmp1],["nodata"]);
tmp2=Reflectdata("2",[Graph],[Ctr,Ctr+[1,0]],
@@ -4286,10 +4880,14 @@ Ovaldata(nm,Pdata,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -4300,14 +4898,16 @@ Ovaldata(nm,Pdata,options):=(
);
Graph;
);
+////%Ovaldata end////
-Segmark(nm,ptlist):=Segmark(nm,ptlist,[]);
-Segmark(nm,ptlist,options):=Drawsegmark(nm,ptlist,options,color);
+////%Segmark start////
+Segmark(nm,ptlist):=Drawsegmark(nm,ptlist,[]);
+Segmark(nm,ptlist,options):=Drawsegmark(nm,ptlist,options);//180704
Drawsegmark(nm,ptlist):=Drawsegmark(nm,ptlist,[]);
Drawsegmark(nm,ptlist,options):=(
//help:Segmark("1",[A,B]);
//help:Segmark(options=["Type=1","Width=1","Size=1"]);
- regional(name,pA,pB,wid,mid,size,tp,dir,nor,eqL,
+ regional(name,pA,pB,wid,mid,size,tp,dir,nor,eqL,color, //180704
tmp,tmp1,tmp2);
name="mrk"+nm;
pA=ptlist_1;
@@ -4317,7 +4917,7 @@ Drawsegmark(nm,ptlist,options):=(
tp=1;
tmp1=Divoptions(options);
eqL=tmp1_5;
- color=tmp_(length(tmp)-2);
+ color=tmp1_(length(tmp1)-2);//180704
forall(eqL,
tmp=indexof(#,"=");
tmp1=substring(#,tmp,length(#));
@@ -4340,29 +4940,31 @@ Drawsegmark(nm,ptlist,options):=(
if(tp==1,
tmp1=mid+size*nor;
tmp2=mid-size*nor;
- Listplot(name,[tmp1,tmp2]);
+ Listplot(name,[tmp1,tmp2],["Color="+text(color)]);//180704
);
if(tp==2,
tmp1=mid+wid*dir+size*nor;
tmp2=mid+wid*dir-size*nor;
- Listplot(name+"r",[tmp1,tmp2]);
+ Listplot(name+"r",[tmp1,tmp2],["Color="+text(color)]);//180704
tmp1=mid-wid*dir+size*nor;
tmp2=mid-wid*dir-size*nor;
- Listplot(name+"l",[tmp1,tmp2]);
+ Listplot(name+"l",[tmp1,tmp2],["Color="+text(color)]);//180704
);
if(tp==3,
tmp1=mid;
tmp2=mid+size*dir;
- Circledata(name,[tmp1,tmp2]);
+ Circledata(name,[tmp1,tmp2],["Color="+text(color)]);//180704
);
if(tp==4,
tmp=mid+size*2/sqrt(3)*nor;
tmp1=mid+size*dir-size/sqrt(3)*nor;
tmp2=mid-size*dir-size/sqrt(3)*nor;
- Listplot(name,[tmp,tmp1,tmp2,tmp]);
+ Listplot(name,[tmp,tmp1,tmp2,tmp],["Color="+text(color)]);//180704
);
);
+////%Segmark end////
+////%Parabolaplot start////
Parabolaplot(nm,ptlist):=Parabolaplot(nm,ptlist,"[-5,5]",[]);
Parabolaplot(nm,ptlist,Arg):=(
regional(rng,options);
@@ -4404,7 +5006,9 @@ Parabolaplot(nm,ptlist,rng,options):=(
Plotdata(nm+"para",tmp,tmp2,append(options,"nodisp"));
Rotatedata(nm+"para","gr"+nm+"para",angle,append(options,pB));
);
+////%Parabolaplot end////
+////%Ellipseplot start////
Ellipseplot(nm,ptlist):=Ellipseplot(nm,ptlist,"[0,2*pi]",[]);
Ellipseplot(nm,ptlist,Arg):=(
regional(rng,options);
@@ -4449,7 +5053,9 @@ Ellipseplot(nm,ptlist,rng,options):=(
Paramplot(nm+"elp",tmp,"t="+rng,append(options,"nodisp"));
Rotatedata(nm+"elp","gp"+nm+"elp",angle,append(options,pA));
);
+////%Ellipseplot end////
+////%Hyperbolaplot start////
Hyperbolaplot(nm,ptlist):=Hyperbolaplot(nm,ptlist,"[-5/2,5/2]",[]);
Hyperbolaplot(nm,ptlist,Arg):=(
regional(rng,options);
@@ -4515,11 +5121,28 @@ Hyperbolaplot(nm,ptlist,rng,optionsorg):=(
Rotatedata(nm+"asy2","ln"+nm+"asy2",angle,append(opasy,pA));//180408
);
);
+////%Hyperbolaplot end////
+////%Polygonplot start////
Polygonplot(nm,ptlist,number):=Polygonplot(nm,ptlist,number,[]);
-Polygonplot(nm,ptlist,number,options):=(
+Polygonplot(nm,ptlist,number,optionorg):=(
//help:Polygonplot("1",[A,B],12);
- regional(rr,pA,pB,ptL,angle,tmp,tmp1,tmp2);
+//help:Polygonplot("1",[A,B],12,["Geo=n"]);
+ regional(options,eqL,geo,rr,pA,pB,ptL,angle,tmp,tmp1,tmp2);
+println([4573,ptlist]);
+ geo="N"; //180708from
+ options=optionorg;
+ tmp=Divoptions(options);
+ eqL=tmp_5;
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ tmp2=tmp_2;
+ if(tmp1=="G",
+ geo=Toupper(substring(tmp2,0,1));
+ options=remove(options,[#]);
+ );
+ ); //180708to
pA=Lcrd(ptlist_1);
pB=Lcrd(ptlist_2);
rr=|pB-pA|;
@@ -4538,7 +5161,9 @@ Polygonplot(nm,ptlist,number,options):=(
tmp=angle+#*2*pi/number;
tmp1=pA+rr*[cos(tmp),sin(tmp)];
if(#>0 & #<number,
- Putpoint((ptlist_2).name+text(#),tmp1);//16.10.07
+ if((ispoint(ptlist_2))&(geo=="Y"), //180708(3lines)
+ Putpoint((ptlist_2).name+text(#),tmp1);//16.10.07
+ );
//Pointdata(nm,ptL);
);
tmp2=tmp1;
@@ -4546,7 +5171,9 @@ Polygonplot(nm,ptlist,number,options):=(
);
Listplot(nm+"ply",ptL,options);
);
+////%Polygonplot end////
+////%Putintersect start////
Putintersect(nm,pdata1,pdata2):=(
//help:Putintersect("Q","gr1","gr2");
regional(pd1,pd2,tmp);
@@ -4576,23 +5203,35 @@ Putintersect(nm,pdata1,pdata2,ptno):=(
err("No intersect point");
);
);
+////%Putintersect end////
+////%Arrowheaddata start////
Arrowheaddata(point,direction):=Arrowheaddata(point,direction,[]);
Arrowheaddata(point,direction,options):=(
// help:Arrowheaddata(A,B);
- regional(list,Ookisa,Hiraki,Futosa,Houkou,Str,Flg,tmp,Ev,Nv,pA,pB,
- pP,rF,gG,Flg,Nj,Eps,tmp1,scx,scy);
+// help:Arrowheaddata(options=[1,18,"Coord=phy"]);
+ regional(list,Ookisa,Hiraki,Futosa,Houkou,Str,Flg,Ev,Nv,pA,pB,
+ reL,eqL,coord,pP,rF,gG,Flg,Nj,Eps,scx,scy,tmp,tmp1,tmp2);
Eps=10^(-3);
- pP=point;
+ coord="P";
Ookisa=0.2*YaSize;
Hiraki=YaAngle;
Futosa=0;
Str=YaStyle;
tmp=Divoptions(options);
- tmp1=tmp_6;
- if(length(tmp1)>0,Ookisa=Ookisa*tmp1_1);
- if(length(tmp1)>1,
- tmp=tmp1_2;
+ eqL=tmp_5; //181018from
+ reL=tmp_6;
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=substring(tmp_1,0,1);
+ tmp2=substring(tmp_2,0,1);
+ if(Toupper(tmp1)=="C",
+ coord=Touppera(tmp2);
+ );
+ ); //181018to
+ if(length(reL)>0,Ookisa=Ookisa*reL_1);
+ if(length(reL)>1,
+ tmp=reL_2;
if(tmp<5,
Hiraki=Hiraki*tmp;
,
@@ -4601,17 +5240,22 @@ Arrowheaddata(point,direction,options):=(
);
Flg=0;
Hiraki=Hiraki*pi/180;
+ if(ispoint(direction),Houkou=direction.xy); //181018
if(isstring(direction),Houkou=parse(direction),Houkou=direction);
if(MeasureDepth(Houkou)==2,Houkou=Houkou_1);
+ if(coord=="P",//181018from
+ if(ispoint(point),pP=point.xy,pP=point);
+ ,
+ pP=Pcrd(point);
+ if(!islist(Houkou_1),
+ Houkou=Pcrd(Houkou);
+ ,
+ Houkou=apply(Houkou,Pcrd(#));
+ );
+ );//181018to
if(islist(Houkou_1),
-// pP=Lcrd(pP);
-// pP=Doscaling(pP);
-// Houkou=Dosscaling(Houkou);
- pP=Pcrd(pP);
- scy=SCALEY;
- SCALEY=1;
tmp=Nearestpt(pP,Houkou);
- pA=tmp_1;
+ pP=tmp_1;
rF=floor(tmp_2);
if(rF==1,
if(|Ptend(Houkou)-Ptstart(Houkou)|<Eps,
@@ -4623,34 +5267,22 @@ Arrowheaddata(point,direction,options):=(
forall(1..rF,Nj,
if(Flg==0,
pB=Ptcrv(rF+1-Nj,Houkou);
- tmp=IntersectcrvsPp([pA,pB],gG);
+ tmp1=apply([pP,pB],LLcrd(#));
+ tmp2=apply(gG,LLcrd(#));
+ tmp=IntersectcrvsPp([pP,pB],gG);
if(length(tmp)>0,
- Houkou=pP-tmp_1_1;
+ Houkou=pP-Pcrd(tmp_1_1);
Flg=1;
);
- pA=pB;
);
);
- SCALEY=scy;
if(Flg==0,
println("Arrowhead may be too large (no intersect)");
Flg=2;
);
- if(Flg==1,
- Houkou=Unscaling(Houkou);
- pP=Unscaling(pP);
- );
);
if(Flg<2,
-// pP=Doscaling(pP);
-// Houkou=Doscaling(Houkou);
- pP=Pcrd(pP);
- if(!ispoint(point),
- Houkou=Pcrd(Houkou);
- );
-// if(MeasureDepth(Houkou)==0,Houkou=Pcrd(Houkou));
Ev=-1/|Houkou|*Houkou;
- Ev=Lcrd(Ev);
Nv=[-Ev_2, Ev_1];
if(indexof(Str,"c")>0,
pP=pP-0.5*Ookisa*cos(Hiraki)*Ev;
@@ -4661,211 +5293,192 @@ Arrowheaddata(point,direction,options):=(
pA=pP+Ookisa*cos(Hiraki)*Ev+Ookisa*sin(Hiraki)*Nv;
pB=pP+Ookisa*cos(Hiraki)*Ev-Ookisa*sin(Hiraki)*Nv;
list=[pA,pP,pB];
- list=apply(list,LLcrd(#));
-// Out=Unscaling(Out);
list;
);
);
+////%Arrowheaddata end////
-Arrowhead(point,Houkou):=Arrowhead(point,Houkou,[]);
-Arrowhead(point,Houkou,options):=(
-//help:Arrowhead(B,B-A,[1.5,30]);
-//help:Arrowhead(A,"gr1");
- // global ArrowheadNumber
- regional(name,Ltype,Noflg,reL,opstr,opcindy,color,
- ptstr,hostr,tmp,tmp1,list);
- name="arh"+text(ArrowheadNumber);
- ArrowheadNumber=ArrowheadNumber+1;
- ptstr=textformat(point,5);
- if(isstring(Houkou), // 15.01.11
- tmp=parse(Houkou);
- if(MeasureDepth(tmp)<2,
- hostr=Houkou;
- ,
- hostr=Houkou+"(1)";
- );
+////%Arrowhead start////
+Arrowhead(point,Houkou):=Arrowhead(point,Houkou,[]); //181018from
+Arrowhead(Arg1,Arg2,Arg3):=(
+ if(isstring(Arg1),
+ Arrowhead(Arg1,Arg2,Arg3,[]);
,
- if(ispoint(point),
- hostr=textformat(LLcrd(Houkou),5);
- ,
- hostr=textformat(Houkou,5);
- );
+ Arrowhead(text(ArrowheadNumber),Arg1,Arg2,Arg3);
);
+);
+Arrowhead(nm,point,direction,optionsorg):=(//181018from
+//help:Arrowhead("1",B,B-A);
+//help:Arrowhead(options=[1.5,30,"Coor=P(L)"]);
+//help:Arrowhead(A,"gr1");
+ regional(name,Ltype,Noflg,reL,opstr,opcindy,color,eqL,coord,
+ options,pP,Houkou,ptstr,hostr,tmp,tmp1,tmp2,list);
+ name="arh"+nm; //181018
+ ArrowheadNumber=ArrowheadNumber+1;
+ options=optionsorg;
tmp=Divoptions(options);
Ltype=tmp_1;
Noflg=tmp_2;
reL=tmp_6;
color=tmp_(length(tmp)-2);
- opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- list=Arrowheaddata(point,Houkou,options);
+ eqL=tmp_5;
+ coord="P";
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=substring(tmp_1,0,1);
+ tmp2=substring(tmp_2,0,1);
+ if(Toupper(tmp1)=="C",
+ coord=Touppera(tmp2);
+ options=remove(options,[#]);
+ );
+ ); //181018to
+ if(ispoint(direction),Houkou=direction.xy); //181018
+ if(isstring(direction),Houkou=parse(direction),Houkou=direction);
+ if(MeasureDepth(Houkou)==2,Houkou=Houkou_1);
+ if(coord=="P",//181018from
+ if(ispoint(point),pP=point.xy,pP=point);
+ ,
+ pP=Pcrd(point);
+ if(!islist(Houkou_1),
+ Houkou=Pcrd(Houkou);
+ ,
+ Houkou=apply(Houkou,Pcrd(#));
+ );
+ );//181018to
+ list=Arrowheaddata(pP,Houkou,options);
+ if(!Inwindow(LLcrd(pP)),Noflg=2);//181018
if(Noflg<3,
-// println("generate Arrowhead "+name);
- tmp1=apply(list,Pcrd(#));
+ tmp1=apply(list,LLcrd(#));
tmp=name+"="+textformat(tmp1,5);
parse(tmp);
-// GLIST=append(GLIST,name+"=Listplot("+list+")");
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(1)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
-// if(Noflg==1,Ltype=0);
- Ltype=0;
+ Listplot("-arh"+nm,apply(list,LLcrd(#)),concat(options,["notex","Msg=n"]));
);
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
);
if(Noflg==0,
- if(length(reL)<3, // 16.04.09 from
- forall(1..(2-length(reL)),
- opstr=opstr+",1";
- );
- tmp=PenThick/PenThickInit;
- opstr=opstr+","+text(tmp);
- ); // 16.04.09 until
- Com2nd("Arrowhead("+ptstr+","+hostr+opstr+")");
- );
-);
-
-Arrowdata(ptlist):=Arrowdata(ptlist,[]);
-Arrowdata(Arg1,Arg2):=(
- regional(tmp,nm,ptlist,flg,pA,pB,options);
- flg=0;
- if(isstring(Arg1),
- nm=Arg1;
- ptlist=Arg2;
- Arrowdata(nm,ptlist,[]);
- flg=1;
- );
- if(flg==0,
- tmp=MeasureDepth(Arg1);
- if(tmp==0,
- pA=Arg1;
- pB=Arg2;
- Arrowdata(pA,pB,[]);
- ,
- ptlist=Arg1;
- options=Arg2;
- nm=text(ArrowlineNumber);
- ArrowlineNumber=ArrowlineNumber+1;
- Arrowdata(nm,ptlist,options);
- );
- );
-);
-Arrowdata(Arg1,Arg2,options):=(
-//help:Arrowdata([A,B],[2,10]);
-//help:Arrowdata("1",[p1,p2]);
- regional(Retflg,nm,ptlist,name,opstr,opcindy,realL,strL,size,
- flg,Ltype,Noflg,lineflg,tmp,tmp1,tmp2,pA,pB,segpos,color);
- Retflg=0;
- Noflg=0;
- Ltype=0;
- if(!isstring(Arg1),
- pA=Arg1;
- pB=Arg2;
- Arrowdata(pA,pB,options,"old");
- Retflg=1;
- ptlist=[pA,pB];
- );
- if(Retflg==0,
- nm=Arg1;
- ptlist=Arg2;
- name="ar"+nm;
tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- realL=tmp_6;
- strL=tmp_7;
- color=tmp_(length(tmp)-2);
opstr=tmp_(length(tmp)-1);
- opcindy=tmp_(length(tmp));
- size=1; // 15.06.11
- if(length(realL)>0,
- size=realL_1;
+ ptstr=Textformat(LLcrd(pP),5);
+ if(isstring(direction), //181019
+ hostr=direction;
+ ,
+ if(!islist(Houkou_1),
+ hostr=format(LLcrd(Houkou),5);
+ ,
+ hostr=format(apply(Houkou,LLcrd(#)),5);
+ );
);
- tmp2=select(strL,indexof(#,"l")>0); // 16.04.09
- if(length(tmp2)>0,lineflg=1,lineflg=0); // 16.04.09
- segpos=1;
- tmp1=tmp_5;
- if(length(tmp1)>2,
- segpos=tmp1_3;
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- if(Noflg<3,
-// println("generate Arrowdata "+name);
- tmp1=apply(ptlist,Pcrd(#));
- tmp=name+"="+textformat(tmp1,5);
- parse(tmp);
- tmp1=Pcrd(ptlist_1);//16.10.20
- tmp2=Pcrd(ptlist_2);//16.10.20
- if(lineflg==0, // 16.04.09 from
- tmp=tmp2-0.2*size/2*(tmp2-tmp1)/|tmp2-tmp1|; // 15.06.11
- ,
- tmp=tmp2;
- ); // 16.04.09 until
- tmp=[LLcrd(tmp1),LLcrd(tmp)];//16.10.20
- GLIST=append(GLIST,name+"=Listplot("+textformat(tmp,5)+")");
+ Com2nd("Arrowhead("+ptstr+","+hostr+opstr+")");
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("}");//180722
);
- if(Noflg<2,
- if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
- if(Noflg==1,Ltype=0);
- );
- tmp=textformat(ptlist,5);
- tmp=substring(tmp,1,length(tmp)-1);
- tmp1=indexof(tmp,"],[");
- if(tmp1>0,
- pA=substring(tmp,0,tmp1);
- pB=substring(tmp,tmp1+1,length(tmp));
- ,
- tmp1=indexof(tmp,",");
- pA=substring(tmp,0,tmp1-1);
- pB=substring(tmp,tmp1,length(tmp));
- );
- tmp1="Lcrd("+pA+")+"
- +textformat(segpos,5)+"*(Lcrd("+pB+")-"+"Lcrd("+pA+"))";
- tmp1=parse(tmp1);
- tmp2="Lcrd("+pB+")-Lcrd("+pA+")";
- tmp2=parse(tmp2);
- Arrowhead(tmp1,tmp2,options);
- GCLIST=append(GCLIST,[name,Ltype,opcindy]);
+);
+);
+////%Arrowhead end////
+
+////%Arrowdata start////
+Arrowdata(nm,ptlist):=Arrowdata(nm,ptlist,[]);
+Arrowdata(nm,ptlist,optionsorg):=(
+//help:Arrowdata("1",[A,B]);
+//help:Arrowdata("1",[pt1,pt2]);
+//help:Arrowdata(options=[1,18,pos(1),cut(0),"Cutend=0,0","Coord=p/n"]);
+ regional(options,Ltype,Noflg,name,opstr,opcindy,eqL,reL,strL,color,size,coord,
+ flg,lineflg,cutend,tmp,tmp1,tmp2,pA,pB,angle,segpos);
+ name="ar"+nm;
+ options=optionsorg;
+ tmp=Divoptions(options);
+ Ltype=tmp_1;
+ Noflg=tmp_2;
+ eqL=tmp_5;
+ reL=tmp_6;
+ strL=tmp_7;
+ color=tmp_(length(tmp)-2);
+ opstr=tmp_(length(tmp)-1);
+ opcindy=tmp_(length(tmp));
+ size=1; // 15.06.11
+ angle=18;
+ segpos=1;
+ if(length(reL)>0,
+ size=relL_1;
+ if(length(reL)>1, //180719from
+ angle=reL_2;
+ if(length(reL)>2,
+ segpos=reL_3;
+ );
+ );//180719to
+ );
+ lineflg=0;
+ if(contains(strL,"l")%contains(strL,"L"),
+ lineflg=1;
+ );//181018from
+ options=remove(options,strL);
+ cutend=[0,0];//180719
+ coord="P";//181018
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,2));
+ tmp2=tmp_2;
+ if(tmp1=="CU",//180719from
+ tmp2=replace(tmp2,"[","");
+ tmp2=replace(tmp2,"]","");
+ cutend=tokenize(tmp2,",");
+ if(length(cutend)==1,cutend=[cutend_1,cutend_1]);
+ options=remove(options,[#]);
+ );
+ if(tmp1=="CO",//181018from
+ coord=Toupper(substring(tmp2,0,1));
+ options=remove(options,[#]);
);
);
- ptlist;
-);
-Arrowdata(pA,pB,options,str):=(
- regional(ptA,ptB,opstr,Astr,Bstr,name,tmp,opcindy);
- Astr=textformat(pA,5);
- Bstr=textformat(pB,5);
- name="ar"+pA.name+pB.name;
- println("generate Arrow "+name);
- opstr="";
- opcindy="";
- forall(options,
- if(isstring(#),
- if(indexof(#,"->")>0,
- opcindy=opcindy+","+#;
- ,
- tmp="'"+#+"'";
- );
+ if(coord=="P",
+ pA=ptlist_1; pB=ptlist_2;
+ if(ispoint(pA),pA=pA.xy);
+ if(ispoint(pB),pB=pB.xy);
+ ,
+ pA=Pcrd(ptlist_1); pB=Pcrd(ptlist_2);
+ );//181018to
+ if(Noflg<3,
+ println("generate Arrowdata "+name);
+ if(|cutend|>0,//180719from
+ tmp=ptlist_2-ptlist_1;
+ tmp=tmp/|tmp|;
+ ptlist_1=ptlist_1+tmp*cutend_1;
+ ptlist_2=ptlist_2-tmp*cutend_2;
+ );//180719to
+ tmp=name+"="+Textformat([pA,pB],5);
+ parse(tmp);
+ if(lineflg==0, // 16.04.09 from
+ tmp=pA-0.2*size/2*(pB-pA)/|pB-pA|; // 15.06.11
,
- tmp=text(#);
+ tmp=pB;
+ ); // 16.04.09 until
+ tmp=format([LLcrd(pA),LLcrd(tmp)],6);
+ );
+ if(Noflg<2,
+ if(isstring(Ltype),
+// if((Noflg==0)&(color!=KCOLOR), //180904
+// Texcom("{");Com2nd("Setcolor("+color+")");//180722
+// );
+ Listplot("-ar"+nm,[LLcrd(pA),LLcrd(pB)],append(options,"Msg=n"));
+ Arrowhead(nm,pB,pB-pA,options);
+// Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+// if((Noflg==0)&(color!=KCOLOR), //180904
+// Texcom("}");//180722
+// );
+ ,
+ if(Noflg==1,Ltype=0);
);
- opstr=opstr+","+tmp;
);
- ptA=Lcrd(pA);
- ptB=Lcrd(pB);
- Arrowheaddata(ptB,ptB-ptA,options);
- tmp="connect("+textformat([ptA,ptB],5)
- +",linecolor->"+text(KCOLOR)+opcindy+");";
- parse(tmp); // 14.11.17
- Com2nd("Arrowline("+Astr+","+Bstr+opstr+")"); // 14.10.04
+ [Lcrd(pA),Lcrd(pB)];
);
+////%Arrowdata end////
+////%Anglemark start////
Anglemark(plist):=Anglemark(plist,[]);
Anglemark(Arg1,Arg2):=( // 2015.04.28 from
regional(nm,plist,options,tmp);
@@ -4958,10 +5571,14 @@ Anglemark(nm,plist,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -4969,7 +5586,9 @@ Anglemark(nm,plist,options):=(
);
Out;
);
+////%Anglemark end////
+////%Paramark start////
Paramark(plist):=Paramark(plist,[]);
Paramark(Arg1,Arg2):=( // 17.03.27 from
regional(nm,plist,options,tmp);
@@ -4985,7 +5604,7 @@ Paramark(Arg1,Arg2):=( // 17.03.27 from
nm=substring(tmp,1,length(tmp)-1);
Paramark(nm,plist,options);
);
-);// until
+);// to
Paramark(nm,plist,options):=(
//help:Paramark([A,B,C],["E=\theta"]);
//help:Paramark("1",[p1,p2,p3],["E=\theta"]);
@@ -5012,7 +5631,7 @@ Paramark(nm,plist,options):=(
if(substring(#,0,1)=="L",Bname="Letter(");
if(substring(#,0,1)=="E",Bname="Expr(");
Bpos="md"+name;
- Bname=Bname+Dq+Bpos+Dq+","+Dq+"c"+Dq+","+Dq;
+ Bname=Bname+Bpos+","+Dq+"c"+Dq+","+Dq; //180705
tmp=substring(#,indexof(#,"="),length(#));
tmp1=indexof(tmp,",");
Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")";
@@ -5043,17 +5662,23 @@ Paramark(nm,plist,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
);
Out;
);
+////%Paramark end////
+////%MakeBowdata start////
MakeBowdata(pA,pB,Hgt):=(
regional(angle,pB2,pH2,pC2,pC,tmp,Th1,Th2,ra,dMA);
angle=arctan2(pB-pA)+0;
@@ -5068,7 +5693,9 @@ MakeBowdata(pA,pB,Hgt):=(
Th2=arctan2(pB2-pC2)+angle;
[pC,ra,Th1,Th2];
);
+////%MakeBowdata end////
+////%Bowdata start////
Bowdata(plist):=Bowdata(plist,[]);
Bowdata(plist,options):=(
regional(nm,tmp);
@@ -5165,7 +5792,7 @@ Bowdata(nm,plist,options):=(
Bname=Bname+Bpos;//16.11.01
if(abs(Tmov)+abs(Nmov)>0,
tmp=Pcrd(pA)-Pcrd(pB);
- tmp1=1/norm(tmp)*tmp;
+ tmp1=1/Norm(tmp)*tmp;
tmp2=[-tmp1_2,tmp1_1];
tmp=MARKLEN*(Tmov*tmp1+Nmov*tmp2);
tmp=LLcrd(tmp);
@@ -5222,21 +5849,29 @@ Bowdata(nm,plist,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
);
);
+////%Bowdata end////
+////%Bowname start////
Bowname(str):=Bowname("c",str);
Bowname(dir,str):=(
Expr([BOWMIDDLE,dir,str]);
);
+////%Bowname end////
+////%Bownamerot start////
Bownamerot(bwdata,str):=Bownamerot(bwdata,0,0,str,1);
Bownamerot(bwdata,str,updown):=Bownamerot(bwdata,0,0,str,updown);
Bownamerot(bwdata,tmov,nmov,str):=Bownamerot(bwdata,tmov,nmov,str,1);
@@ -5252,7 +5887,9 @@ Bownamerot(bwdata,tmov,nmov,str,updown):=(
if(updown<0,tmp=-tmp);
Exprrot(BOWMIDDLE,tmp,tmov,nmov,str);
);
+////%Bownamerot end////
+////%Deqdata start////
Deqdata(deq,rng,initt,initf,Num):=( //17.10.04
// Deqdata("[x1,...xn]`=[f1,...fn]","t=[0,20]",0,[...],50);
regional(Eps,Inf,tname,Xname,func,t1,t2,dt,tt,X0,flg,
@@ -5312,7 +5949,9 @@ Deqdata(deq,rng,initt,initf,Num):=( //17.10.04
);
pdL;
);
-
+////%Deqdata end////
+
+////%Deqplot start////
Deqplot(nm,deq,rng,initf):=Deqplot(nm,deq,rng,Lcrd(initf)_1,initf,[]);
Deqplot(nm,deq,rng,Arg1,Arg2):=(
regional(initt,initf,options);
@@ -5426,15 +6065,20 @@ Deqplot(nm,deqorg,rngorg,initt,initf,options):=( //17.10.06
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
);
);
+////%Deqplot end////
////////// old enclosing ///////////////
@@ -5442,7 +6086,7 @@ Enclosing(nm,plist):=EnclosingS(nm,plist);
Enclosing(nm,plist,options):=EnclosingS(nm,plist,options);
EnclosingS(nm,plist):=EnclosingS(nm,plist,[]);
EnclosingS(nm,plist,options):=(
-//help:Enclosing("1",["sc2","crAB","sc2","Invert(sc1)"],[pt,"dr"]);
+// help:Enclosing("1",["sc2","crAB","sc2","Invert(sc1)"],[pt,"dr"]);
regional(name,AnsL,Start,Eps,EEps,S,Flg,Fdata,Gdata,KL,pt,qt,color
t1,t2,t3,ii,nn,tmp,tmp1,tmp2,Ltype,Noflg,realL,eqL,opstr,opcindy);
name="en"+nm;
@@ -5492,10 +6136,10 @@ EnclosingS(nm,plist,options):=(
,
pt=KL_1_1;
t1=KL_1_2;
- tmp=|pt-Start|;
+ tmp=Norm(pt-Start);
forall(2..(length(KL)),ii, // 15.04.20
tmp1=KL_ii_1;
- tmp2=|tmp1-Start|; // 15.04.20
+ tmp2=Norm(tmp1-Start); // 15.04.20
if(tmp2<tmp,
pt=tmp1;
t1=KL_ii_2;
@@ -5582,10 +6226,14 @@ EnclosingS(nm,plist,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -5596,13 +6244,16 @@ EnclosingS(nm,plist,options):=(
/////////// new enclosing ///////////
+////%Enclosing start////
+Enclosing(nm,plist):=Enclosing2(nm,plist,[]);//180706(2lines)
+Enclosing(nm,plistorg,options):=Enclosing2(nm,plistorg,options);
Enclosing2(nm,plist):=Enclosing2(nm,plist,[]);
Enclosing2(nm,plistorg,options):=(
-//help:Enclosing2("1",["sc2","crAB","sc2","Invert(sc1)"]);
-//help:Enclosing2(options=[Eps1(0.01),Eps2(0.1)]);
+//help:Enclosing("1",["sg2","gr1","Invert(sg2)"]);
+//help:Enclosing(options=[startpoint,epspara(1)]);
regional(name,plist,AnsL,Start,Eps,Eps1,Eps2,flg,Fdata,Gdata,KL,
t1,t2,tst,ss,ii,nn,nxtno,Ltype,Noflg,realL,eqL,opstr,opcindy,
- tmp,tmp1,tmp2,color);
+ tmp,tmp1,tmp2,color,epspara,p1,p2);
name="en"+nm;
plist=plistorg;
tmp=Divoptions(options);
@@ -5614,16 +6265,18 @@ Enclosing2(nm,plistorg,options):=(
opstr=tmp_(length(tmp)-1);
opcindy=tmp_(length(tmp));
Eps=10^(-5); // 16.12.05
+ epspara=1; //180707
Eps1=0.01;
Eps2=0.1;
Start=[];
flg=0;
forall(realL,
if(isList(#) % ispoint(#),
-// Start=Lcrd(#); // 18.02.02
+ Start=Lcrd(#); // 18.02.02
,
- if(flg==0,Eps1=#);
- if(flg==1,Eps2=#);
+ if(flg==0,epspara=#);//180707
+ if(flg==1,Eps1=#);
+ if(flg==2,Eps2=#);
flg=flg+1;
);
);
@@ -5652,7 +6305,8 @@ Enclosing2(nm,plistorg,options):=(
tmp=Listplot(name,[tmp1,tmp2],["nodisp"]);
plist=append(plist,"sg"+name);
Start=tmp2;
- tst=1; //18.02.02until
+ tst=1; //18.02.02to
+ p1=Start;
,
if(length(KL)==1,
tst=KL_1_2;
@@ -5666,7 +6320,7 @@ Enclosing2(nm,plistorg,options):=(
,
tmp=apply(KL,|#_1-Start|);
tmp=min(tmp);
- tmp1=select(KL,|#_1-Start|==tmp);
+ tmp1=select(KL,|#_1-Start|<tmp+Eps1);//180718
tst=tmp1_1_2;
Start=Pointoncurve(tst,Fdata);
);
@@ -5675,6 +6329,7 @@ Enclosing2(nm,plistorg,options):=(
);
if(flg==0,
t1=tst;
+ p1=Pointoncurve(t1,Fdata); //180713
println("Start point of enclosing is "+text(Start));
forall(1..(length(plist)),nn,
Fdata=plist_nn;
@@ -5691,11 +6346,17 @@ Enclosing2(nm,plistorg,options):=(
parse(tmp);
plist_nxtno=Gdata;
t2=Length(tmp1);
- ss=1; //18.02.02until
+ p2=Pointoncurve(t2,Fdata); //180713
+ ss=1; //18.02.02to
,
+ KL=sort(KL,[#_2]);//180706
+ tmp=parse(Fdata);
+ tmp1=t1+epspara/50*length(tmp);
+// KL=select(KL,#_2>t1+epspara/50*length(tmp)); //180707
+ KL=select(KL,(#_2>tmp1)%((#_2>t1)&(|#_1-p1|>Eps1))); //180713,16
t2=KL_1_2;
ss=KL_1_3;
- if(abs(t2-t1)<Eps,
+ if(abs(t2-t1)<Eps,//180707
if(length(KL)>1,
t2=KL_2_2;
ss=KL_2_3;
@@ -5712,12 +6373,13 @@ Enclosing2(nm,plistorg,options):=(
,
AnsL=concat(AnsL,tmp_(2..(length(tmp))));
);
- t1=ss;
);
+ t1=ss;//180706
+ p1=Pointoncurve(t1,Gdata); //180713
);
);
if(flg==0,
- AnsL=apply(AnsL,Pcrd(#));
+ AnsL=apply(AnsL,Pcrd(#));
);
if(Noflg<3,
println("generate Enclosing "+name);
@@ -5728,15 +6390,21 @@ Enclosing2(nm,plistorg,options):=(
forall(plistorg, //18.02.02
tmp1=tmp1+#+",";
);
- tmp=tmp+substring(tmp1,0,length(tmp1)-1)+"))";//18.02.02
+ tmp=tmp+substring(tmp1,0,length(tmp1)-1)+")";//18.0706from
+ if(length(Start)>0,tmp=tmp+","+Textformat(Start,6));
+ tmp=tmp+","+text(epspara)+")";//18.0706to,180707
GLIST=append(GLIST,tmp);//16.11.07until
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -5744,16 +6412,18 @@ Enclosing2(nm,plistorg,options):=(
tmp=apply(AnsL,LLcrd(#));//16.10.20
tmp;
);
+////%Enclosing end////
/////////// end of new enclosing ///////////
/////////// new Hatchdata(cindy) ///////////
+////%Makehatch start////
Makehatch(iolistorg,pt,vec,bdylist):=(
regional(Eps,iolist,sg,bdy,out,nb,tenL,ns,ne,ioL,
ii,jj,kk,nvec,nbdy,sgn1,sgn2,flg,rmL,p0,p1,p2,pL,
Scalebkup,tmp,tmp1,tmp2);
- Eps=10^(-6);
+ Eps=10^(-5);
nvec=[-vec_2,vec_1];
nvec=nvec/|nvec|;
if(!islist(iolistorg),iolist=[iolistorg],iolist=iolistorg);
@@ -5763,7 +6433,8 @@ Makehatch(iolistorg,pt,vec,bdylist):=(
tmp="["+substring(tmp,0,length(tmp)-1)+"]";
iolist_#=parse(tmp);
);
- Scalebkup=SCALEY;
+ Scalebkup=[SCALEX,SCALEY];//181020(2lines)
+ SCALEX=1;
SCALEY=1;
sg=Lineplot("",[pt,pt+vec],["nodata"]);
nb=length(bdylist);
@@ -5780,7 +6451,17 @@ Makehatch(iolistorg,pt,vec,bdylist):=(
tmp=Intersectseg(sg,[p1,p2],Eps);
if(abs(tmp_1)<Eps, //18.02.01
p0=tmp_2; t=tmp_3; s=tmp_4;
- pL=append(pL,[p0,t,s,ii]);
+ flg=0; //181003from
+ forall(pL,
+ if(flg==0,
+ if(Norm(#_1-p0)<Eps,
+ flg=1;
+ );
+ );
+ );
+ if(flg==0,
+ pL=append(pL,[p0,t,s,ii]);
+ ); //181003to
);
);
if(length(pL)>0,
@@ -5790,6 +6471,21 @@ Makehatch(iolistorg,pt,vec,bdylist):=(
);
);
tenL=sort(tenL,[#_2]);
+ if(length(tenL)>0, //180619from
+ tmp1=tenL; tenL=[tmp1_1];
+ forall(2..(length(tmp1)),ii, //180717from
+ tmp=tmp1_ii;
+ flg=0;
+ forall(tenL,
+ if((Norm(tmp_1-#_1)<Eps1)&(tmp_4==#_4),
+ flg=1;
+ );
+ );
+ if(flg==0,
+ tenL=append(tenL,tmp);
+ );
+ );//180717to
+ ); //180619to
ioL=apply(1..nb,0);
ns=1;
ne=length(tenL);
@@ -5804,7 +6500,7 @@ Makehatch(iolistorg,pt,vec,bdylist):=(
tmp=[sg_2,-1,2,ioL];
tenL=append(tenL,tmp);
);
- forall(ns..ne,ii,
+ forall(ns..(ne-1),ii, //180619 ne=>ne-1
tmp=tenL_ii;
tmp1=tmp_4;
tmp2=tmp_5;
@@ -5822,17 +6518,49 @@ Makehatch(iolistorg,pt,vec,bdylist):=(
);
);
);
- SCALEY=Scalebkup;
+ SCALEX=Scalebkup_1; //181020
+ SCALEY=Scalebkup_2;
out;
);
+////%Makehatch end////
-Hatchdatacindy(nm,iostr,bdylist):=Hatchdatacindy(nm,iostr,bdylist,[]);
-Hatchdata(nm,iostr,bdylist,options):=Hatchdatacindy(nm,iostr,bdylist,options);
+////%Hatchdata start////
+Hatchdata(nm,iostr,bdylist):=Hatchdatacindy(nm,iostr,bdylist,[]);//180619
+Hatchdata(nm,iostr,bdylist,optionsorg):=( //181003from
+ regional(options,tmp,tmp1,tmp2,eqL,strL,outflg);
+ options=optionsorg;
+ tmp=Divoptions(options);
+ eqL=tmp_5;
+ strL=tmp_7;
+ outflg=0;
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(tmp_1);
+ if(substring(tmp1,0,1)=="O",
+ tmp2=tmp_2;
+ if(tmp2!="n",
+ outflg=1;
+ option=remove(options,[#]);
+ if((tmp2=="m")%(tmp2=="r"),
+ options=append(options,tmp2);;
+ );
+ );
+ );
+ );
+ if(outflg==0,
+ options=remove(options,strL);
+ Hatchdatacindy(nm,iostr,bdylist,options);
+ ,
+ HatchdataR(nm,iostr,bdylist,options);
+ );
+); //181003to
+Hatchdatacindy(nm,iostr,bdylist):=Hatchdata(nm,iostr,bdylist,[]);
Hatchdatacindy(nm,iostr,bdylistorg,options):=(
-//help:Hatchdata("1",["ii"],[["ln1","Invert(gr1)"],["gr2","n"]]);
-//help:Hatchdata(options=[angle,width]);
- regional(name,bdylist,bdynameL,bname,Ltype,Noflg,opstr,opcindy,reL,startP,angle,
- interval,vec,nvec,flg,pt,kk,delta,sha,AnsL,tmp,tmp1,tmp2,color);
+ //help:Hatchdata("1",["ii"],[["ln1","Invert(gr1)"],["gr2","n"]]);
+//help:Hatchdata(options=["Out=n(//m/r)","Maxnum=20",angle,width]);
+ regional(name,bdylist,bdynameL,bname,Ltype,Noflg,opstr,opcindy,reL,
+ eqL,maxnum,startP,angle,interval,vec,nvec,ctr,pt,kk,delta,sha,AnsL,
+ color,tmp,tmp1,tmp2,tmp3,namep,x1,y1,x2,y2,p1,p2); //180717
name="ha"+nm;
bdylist=[];
bdynameL=[];
@@ -5843,34 +6571,55 @@ Hatchdatacindy(nm,iostr,bdylistorg,options):=(
,
tmp=tmp1_(length(tmp1));
if(contains(["n","s","e","w"],tmp),
- tmp2=parse(tmp1_1);
+ namep=tmp1_1;//180717from
+ tmp2=parse(namep);
+ if(substring(namep,0,2)=="ln", //180717from
+ if(contains(["n","s"],tmp),
+ x1=tmp2_1_1; y1=tmp2_1_2; x2=tmp2_2_1; y2=tmp2_2_2;
+ p1=[NE.x,(y2-y1)/(x2-x1)*(NE.x-x1)+y1];
+ p2=[SW.x,(y2-y1)/(x2-x1)*(SW.x-x1)+y1];
+ Listplot(name+text(kk),[p1,p2],["nodisp"]);
+ namep="sg"+name+text(kk);
+ tmp2=parse(namep);
+ );
+ if(contains(["e","w"],tmp),
+ x1=tmp2_1_1; y1=tmp2_1_2; x2=tmp2_2_1; y2=tmp2_2_2;
+ p1=[(x2-x1)/(y2-y1)*(NE.y-y1)+x1,NE.y];
+ p2=[(x2-x1)/(y2-y1)*(SW.y-y1)+x1,SW.y];
+ Listplot(name+text(kk),[p1,p2],["nodisp"]);
+ namep="sg"+name+text(kk);
+ tmp2=parse(namep);
+ );
+ );//180717to
if(tmp=="s",
- Listplot(name,[LLcrd(tmp2_1),[tmp2_1_1,YMIN],
- [tmp2_(length(tmp2))_1,YMIN],LLcrd(tmp2_(length(tmp2)))],["nodisp"]);
- Joincrvs(text(kk)+name,[tmp1_1,"sg"+name],["nodisp"]);
+ Listplot(name,[LLcrd(tmp2_1),[tmp2_1_1,2*YMIN-YMAX], //180717(2lines)
+ [tmp2_(length(tmp2))_1,2*YMIN-YMAX],LLcrd(tmp2_(length(tmp2)))],
+ ["nodisp"]);
+ Joincrvs(text(kk)+name,[namep,"sg"+name],["nodisp"]);//180717
bname="join"+text(kk)+name;
);
if(tmp=="n",
- Listplot(name,[LLcrd(tmp2_1),[tmp2_1_1,YMAX],
- [tmp2_(length(tmp2))_1,YMAX],LLcrd(tmp2_(length(tmp2)))],["nodisp"]);
- Joincrvs(text(kk)+name,[tmp1_1,"sg"+name],["nodisp"]);
+ Listplot(name,[LLcrd(tmp2_1),[tmp2_1_1,2*YMAX-YMIN], //180717(2lines)
+ [tmp2_(length(tmp2))_1,2*YMAX-YMIN],LLcrd(tmp2_(length(tmp2)))],
+ ["nodisp"]);
+ Joincrvs(text(kk)+name,[namep,"sg"+name],["nodisp"]);
bname="join"+text(kk)+name;
);
if(tmp=="e",
Listplot(name,apply([tmp2_1,[XMAX,tmp2_1_2],
[XMAX,tmp2_(length(tmp2))_2],tmp2_(length(tmp2))],LLcrd(#)),["nodisp"]);
- Joincrvs(text(kk)+name,[tmp1_1,"sg"+name],["nodisp"]);
+ Joincrvs(text(kk)+name,[namep,"sg"+name],["nodisp"]);//180717
bname="join"+text(kk)+name;
);
if(tmp=="w",
Listplot(name,apply( [tmp2_1,[XMIN,tmp2_1_2],
[XMIN,tmp2_(length(tmp2))_2],tmp2_(length(tmp2))],LLcrd(#)),["nodisp"]);
- Joincrvs(text(kk)+name,[tmp1_1,"sg"+name],["nodisp"]);
+ Joincrvs(text(kk)+name,[namep,"sg"+name],["nodisp"]);//180717
bname="join"+text(kk)+name;
);
,
- Enclosing2(text(#)+name,tmp,["nodisp"]);
- bname="en"+text(#)+name;
+ Enclosing2(text(kk)+name,tmp,["nodisp"]);//180619(2lines);
+ bname="en"+text(kk)+name;
);
);
bdylist=append(bdylist,parse(bname));
@@ -5879,13 +6628,26 @@ Hatchdatacindy(nm,iostr,bdylistorg,options):=(
tmp=Divoptions(options);
Ltype=tmp_1;
Noflg=tmp_2;
+ eqL=tmp_5;
+ reL=tmp_6;
color=tmp_(length(tmp)-2);
opstr=tmp_(length(tmp)-1);
opcindy=tmp_(length(tmp));
- reL=tmp_6;
angle=45;
- interval=0.125*1000/2.54/MilliIn;
+// interval=0.125*1000/2.54/MilliIn;
+ interval=0.25*1000/2.54/MilliIn; //180706
startP=[(XMIN+XMAX)/2, (YMIN+YMAX)/2];
+ maxnum=[30,0]; //181005 [first,second]
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(tmp_1);
+ if(substring(tmp1,0,1)=="M",
+ maxnum=parse(tmp_2);
+ if(!islist(maxnum),
+ maxnum=[maxnum,0];
+ );
+ );
+ );//181003to
tmp1=1;
forall(reL,
if(islist(#),
@@ -5903,28 +6665,21 @@ Hatchdatacindy(nm,iostr,bdylistorg,options):=(
vec=[cos(angle),sin(angle)];
nvec=[-sin(angle),cos(angle)];
AnsL=[];
- flg=0;
- forall(0..100,kk,
+ ctr=0;//181005(2lines)
+ forall(0..(maxnum_1), kk,
pt=startP+kk*interval*nvec;
- if(flg==0,
- sha=Makehatch(iostr,pt,vec,bdylist);
- if((sha==-1)%(length(sha)==0),
-// flg=1;
- ,
- AnsL=concat(AnsL,sha);
- );
+ sha=Makehatch(iostr,pt,vec,bdylist);
+ if((sha!=-1)&(length(sha)>0),
+ AnsL=concat(AnsL,sha);
+ ctr=ctr+1; //181005
);
);
- flg=0;
- forall(1..100,kk,
+ maxnum_2=maxnum_2+(maxnum_1-ctr); //181005
+ forall(1..(maxnum_2),kk, //181005
pt=startP-kk*interval*nvec;
- if(flg==0,
- sha=Makehatch(iostr,pt,vec,bdylist);
- if((sha==-1)%(length(sha)==0),
-// flg=1;
- ,
- AnsL=concat(AnsL,sha);
- );
+ sha=Makehatch(iostr,pt,vec,bdylist);
+ if((sha!=-1)&(length(sha)>0),
+ AnsL=concat(AnsL,sha);
);
);
if(Noflg<3,
@@ -5946,10 +6701,14 @@ Hatchdatacindy(nm,iostr,bdylistorg,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
@@ -5961,8 +6720,9 @@ Hatchdatacindy(nm,iostr,bdylistorg,options):=(
);
tmp2;
);
+////%Hatchdata end////
-
+////%Shade start////
Shade(plist):=Shade("",plist,[]); //180613from
Shade(Arg1,Arg2):=(
if(isstring(Arg1),
@@ -5977,7 +6737,9 @@ Shade(nm,plistorg,options):=( //180613to
//help:Shade(["gr2","sg1"],["Color=[0,0,0,0.5]"]);
//help:Shade(["gr2","sg1"],["Color=[1,0,0]"]);
// help:Shade([[A,B,C,A]]);
- regional(name,plist,jj,tmp,tmp1,tmp2,opstr,opcindy,reL,Str,G2,flg,color,ctr);
+//help:Shade("1",["gr2","Invert(sg1)"],["Enc=y",startpt]]);
+ regional(name,plist,jj,tmp,tmp1,tmp2,
+ opstr,opcindy,eqL,reL,Str,G2,flg,encflg,startpt,color,ctr);
name="shade"+nm;
plist=plistorg;
if(isstring(plist_1), // 16.01.24
@@ -5986,17 +6748,44 @@ Shade(nm,plistorg,options):=( //180613to
println("output Shade of lists");
);
tmp=Divoptions(options);
+ eqL=tmp_5;
+ reL=tmp_6;
color=tmp_(length(tmp)-2);
opstr=tmp_(length(tmp)-1);
opcindy=tmp_(length(tmp));
- reL=tmp_6; //180603from
- if(length(reL)>0,
- color=reL_1*color;
- );//180603to
+ tmp=select(plist,indexof(#,"Invert")>0); //180929from
+ if(length(tmp)>0,encflg=1,encflg=0);
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(tmp_1);
+ tmp2=Toupper(tmp_2);
+ if(substring(tmp1,0,1)=="E",
+ if(substring(tmp2,0,1)=="Y",
+ encflg=1;
+ );
+ if(substring(tmp2,0,1)=="N",
+ encflg=0;
+ );
+ );
+ );
+ startpt=[];
+ forall(reL,
+ if(islist(#),
+ startpt=#;
+ );
+ ); //180929to
if(length(color)==4, //180602from
tmp=colorCmyk2rgb(color);
);
flg=0; ctr=1;
+ if(encflg==1, //180929from
+ if(length(startpt)==2,
+ Enclosing(nm,plist,[startpt,"nodisp"]);
+ ,
+ Enclosing(nm,plist,["nodisp"]);
+ );
+ plist=["en"+nm];
+ ); //180929to
forall(1..(length(plist)),jj, //180613from
if(flg==0,
tmp1=plist_jj;
@@ -6038,13 +6827,14 @@ Shade(nm,plistorg,options):=( //180613to
);
,
tmp1=tmp1+"Listplot("+textformat(#,5)+"),";
- ); // until 16.01.24
+ ); //16.01.24to
);
- Str=Str+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")";
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")",["before"]));
+ Str=Str+substring(tmp1,0,length(tmp1)-1)+")"+")"; //180929
+ Com2nd("Texcom("+Dqq("{")+")",["before"]);Com2nd("Setcolor("+color+")",["before"]);//180722
Com2nd(Str,["before"]);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")",["before"]));
+ Com2nd("Texcom("+Dqq("}")+")",["before"]);//180722
);
+////%Shade end////
/////////// end of new Hatchdata(cindy) ///////////
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt
index afbbbad15a7..aec118d8bfa 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2logr.txt
@@ -1,3 +1,64 @@
+// 20181024
+// ReadOutData changed (option Disp= )
+// 20181021
+// Htickmark,Vtickmark debugged ( Setscaling )
+// Partcrv, Pointdata debugged (iif => if )
+// 20181020
+// if(color!=KCOLOR => if((Noflg==0)&(color!=KCOLOR)
+// 20181017
+// Htickmark,Vtickmark debugged (for scaling )
+// 20181001
+// Bezier changed (BezierCtrL added as global )
+// 20180917
+// Makebat debugged ( case where work folder is under C )
+// 20180908
+// Presentation debugged (slidepage blank line added )
+// Presentation changed (SlideMargin added)
+// 20180904
+// Color setting changed ( for KCOLOR)
+// 20180903
+// Presentation changed (ketmargin => setmargin )
+// 20180901
+// Inwindow added
+// 20180820,22
+// CRspline chaged (rewritten )
+// 20180820,21
+// Drwxy chaged ( options added )
+// 20180817
+// WritetoRS, Viewtex changed (GPACK added )
+// 20180815
+// Maketitle changed (to make a new text file )
+// 20180813
+// Setslidehyper debugged ( cl,... )
+// 20180809
+// Mkcircles,Mksegment changed
+// 20180805
+// Letterrot debugged (' => "")
+// Letterrot, Exprrot changed (help )
+// 20180802
+// iftoR debugged ( for nested case )
+// Exprrot debugged ( ' => "")
+// 20180725
+// Periodfun changed ( "connect" option)
+// 20180724
+// Periodfun debugged and changed (rep=[n,n])
+// 20180722
+// color localized
+// 20180721
+// WritetoRS changed (case where "Letter" and "Expr" in Com2ndlist)
+// 20180710
+// Htickmark,Vtickmark changed (Expr used )
+// 20180708
+// Putoncurve changed ( Help )
+// 20180701
+// Repeatsameslide changed ( % added to thin )
+// 20180627
+// Presentation debugged ( sort(parafiles))
+// 20180619
+// Writetosci(Arg) added (=WritetoRS(Arg))
+// CRspline changed (Ctrpt not displayed )
+// 20180616
+// presentation debugged (slide title )
// 20180610
// WritetoRS changed ( \\ => /)
// 20180608
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs
index 13b4bd28869..db5421162a5 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibbasic2r.cs
@@ -14,17 +14,20 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindybasic2(20180610) loaded");
+println("ketcindybasic2(20181024) loaded");
//help:start();
+////%Dispchoice start////
Dispchoice():=(
if(islist(Ch),
if(!isreal(ChNum),ChNum=1);
drawtext(mouse().xy,"Ch="+text(Ch)+" N="+text(ChNum),size->24,color->[0,0,1]);
);
);
+////%Dispchoice end////
+////%Datetime start////
Datetime():=(
//help:Datetime();
regional(names,dt,tmp);
@@ -37,7 +40,9 @@ Datetime():=(
tmp=text(tmp_1);
tmp=[dt_6+"/"+tmp+"/"+dt_3,dt_4];
);
+////%Datetime end////
+////%Rotatepoint start////
Rotatepoint(point,Theta,ctr):=(
//help:Rotatepoint(A,2*pi/3,B);
regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
@@ -49,7 +54,9 @@ Rotatepoint(point,Theta,ctr):=(
Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta);
[X2,Y2];
);
+////%Rotatepoint end////
+////%Translatepoint start////
Translatepoint(point,mov):=(
//help:Translatepoint(A,[2,3]);
regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
@@ -61,7 +68,9 @@ Translatepoint(point,mov):=(
Y2=Y1+Cy;
[X2,Y2];
);
+////%Translatepoint end////
+////%Scalepoint start////
Scalepoint(point,ratio,center):=(
//help:Scalepoint(A,[3,2],[0,0]);
regional(X1,X2,Y1,Y2,Cx,Cy,tmp);
@@ -73,7 +82,9 @@ Scalepoint(point,ratio,center):=(
Y2=Cy+ratio_2*(Y1-Cy);
[X2,Y2];
);
+////%Scalepoint end////
+////%Reflectpoint start////
Reflectpoint(point,symL):=(
//help:Reflectpoint(A,B);
//help:Reflectpoint(A,[[2,3]]);
@@ -100,7 +111,9 @@ Reflectpoint(point,symL):=(
);
[X2,Y2];
);
+////%Reflectpoint end////
+////%Rotatedata start////
Rotatedata(nm,plist,Theta):=Rotatedata(nm,plist,Theta,[]);
Rotatedata(nm,plist,angle,options):=(
//help:Rotatedata("1",["crAB","pt1"],pi/3,[[1,5],"dr,2"]);
@@ -161,17 +174,23 @@ Rotatedata(nm,plist,angle,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
);
PdL;
);
+////%Rotatedata end////
+////%Translatedata start////
Translatedata(nm,plist,mov):=Translatedata(nm,plist,mov,[]);
Translatedata(nm,plist,mov,options):=(
//help:Translatedata("1",["gr1","pt1"],[1,2]);
@@ -224,17 +243,23 @@ Translatedata(nm,plist,mov,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
);
PdL;
);
+////%Translatedata end////
+////%Scaledata start////
Scaledata(nm,plist,ratioV):=(
regional(tmp);
tmp=ratioV; //180603from
@@ -311,17 +336,23 @@ Scaledata(nm,plist,rx,ry,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
);
PdL;
);
+////%Scaledata end////
+////%Reflectdata start////
Reflectdata(nm,plist,symL):=Reflectdata(nm,plist,symL,[]);
Reflectdata(nm,plist,symL,options):=(
//help:Reflectdata("1",["crAB"],[C]);
@@ -390,21 +421,29 @@ Reflectdata(nm,plist,symL,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
);
PdL;
);
+////%Reflectdata end////
+// 180800 revised
+////%Mksegments start////
Mksegments():=Mksegments([]);
Mksegments(options):=(
//help:Mksegments();
- regional(segstr,p,q,r,tmp1,tmp2,tmp3);
+ regional(ctr,segstr,p,q,r,tmp1,tmp2,tmp3);
+ ctr=1;//180809
forall(allsegments(),seg,
str=text(inspect(seg,"definition"));
tmp1=indexof(str,"(");
@@ -412,33 +451,38 @@ Mksegments(options):=(
tmp3=indexof(str,")");
p=substring(str,tmp1,tmp2-1);
q=substring(str,tmp2,tmp3-1);
- Listplot([parse(p),parse(q)]);
+ Listplot("all"+text(ctr),[parse(p),parse(q)]);//180800
+ ctr=ctr+1;
);
);
+////%Mksegments end////
+// 180809 revised
+////%Mkcircles start////
Mkcircles():=Mkcircles([]);
Mkcircles(options):=(
//help:Mkcircles():
- regional(seg,cir,str,p,q,r,tmp1,tmp2,tmp3,tmp4);
+ regional(str,ctr,tmp,tmp1,tmp2);
+ ctr=1;
forall(allcircles(),cir,
str=text(inspect(cir,"definition"));
tmp1=indexof(str,"(");
- tmp2=indexof(str,";");
- tmp3=indexof(str,")");
- tmp4=indexof(str,";",tmp2+1);
- if(tmp4==0,
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp3-1);
- Circledata([parse(p),parse(q)]);
+ tmp2=indexof(str,")");
+ str=substring(str,tmp1,tmp2-1);
+ tmp=Strsplit(str,";");
+ tmp1=parse(tmp_1); tmp2=parse(tmp_2);
+ if(ispoint(tmp2),
+ Circledata("all"+text(ctr),[tmp1,tmp2],options);
,
- p=substring(str,tmp1,tmp2-1);
- q=substring(str,tmp2,tmp4-1);
- r=substring(str,tmp4,tmp3-1);
- Circledata([parse(p),parse(q),parse(r)]);
+ tmp=cir.radius;
+ Circledata("all"+text(ctr),[tmp1,tmp1+[tmp2,0]],options);
);
+ ctr=ctr+1;
);
);
+////%Mkcircles end////
+////%MakeRarg start////
MakeRarg(arglist):=(
regional(str,tmpstr);
str="";
@@ -453,7 +497,9 @@ MakeRarg(arglist):=(
str=substring(str,0,length(str)-1);
str;
);
+////%MakeRarg end////
+////%Setax start////
Setax(arglist):=(
//help:Setax(["l","x","e","y","n","O","sw"]);
//help:Setax([7,"nw"]);
@@ -461,22 +507,59 @@ Setax(arglist):=(
tmp=MakeRarg(arglist);
Com1st("Setax("+tmp+")");
);
+////%Setax end////
+////%Htickmark start////
Htickmark(arglist):=(
//help:Htickmark([1,"1",2,"sw","2"]);
- regional(tmp);
- tmp="";
- tmp=MakeRarg(arglist);
- Com2nd("Htickmark("+tmp+")");
+ regional(nn,tmp,tmp1,tmp2,mark);
+ mark=MARKLEN/SCALEY;
+ tmp1=select(1..(length(arglist)),!isstring(arglist_#)); //180710from
+ forall(tmp1,nn,
+ Listplot("ht"+text(nn),
+ [[arglist_nn,mark],[arglist_nn,-mark]],["Msg=n"]);//181017
+ if(nn+2<=length(arglist),
+ tmp=arglist_(nn+2);
+ if(!isstring(tmp),
+ Expr([[arglist_nn,0],"s1",arglist_(nn+1)]);
+ ,
+ Expr([[arglist_nn,0],arglist_(nn+1),arglist_(nn+2)]);
+ );
+ ,
+ Expr([[arglist_nn,0],"s1",arglist_(nn+1)]);
+ );
+ );//180710to
+// tmp="";
+// tmp=MakeRarg(arglist);
+// Com2nd("Htickmark("+tmp+")");
);
+////%Htickmark end////
+////%Vtickmark start////
Vtickmark(arglist):=(
//help:Vtickmark([1,"1",2,"sw","2"]);
- regional(tmp);
- tmp=MakeRarg(arglist);
- Com2nd("Vtickmark("+tmp+")");
+ regional(nn,tmp,tmp1,tmp2,mark);
+ mark=MARKLEN/SCALEX;
+ tmp1=select(1..(length(arglist)),!isstring(arglist_#)); //180710from
+ forall(tmp1,nn,
+ Listplot("vt"+text(nn),
+ [[mark,arglist_nn],[-mark,arglist_nn]],["Msg=n"]); //181021
+ if(nn+2<=length(arglist),
+ tmp=arglist_(nn+2);
+ if(!isstring(tmp),
+ Expr([[0,arglist_nn],"w1",arglist_(nn+1)]);
+ ,
+ Expr([[0,arglist_nn],arglist_(nn+1),arglist_(nn+2)]);
+ );
+ ,
+ Expr([[0,arglist_nn],"w1",arglist_(nn+1)]);
+ );
+ );//180710to// tmp=MakeRarg(arglist);
+// Com2nd("Vtickmark("+tmp+")");
);
+////%Vtickmark end////
+////%Vtick start////
Vtick(py):=Vtick(py,MARKLEN,[]);
Vtick(py,len):=Vtick(py,len,[]);
Vtick(py,len,options):=(
@@ -488,7 +571,9 @@ Vtick(py,len,options):=(
tmp2=[0+len/2,py];
Listplot(tmp,[tmp1,tmp2],options);
);
+////%Vtick end////
+////%Htick start////
Htick(px):=Htick(px,MARKLEN,[]);
Htick(px,len):=Htick(px,len,[]);
Htick(px,lenorg,options):=(
@@ -502,13 +587,28 @@ Htick(px,lenorg,options):=(
tmp2=[px,0+len/2];
Listplot(tmp,[tmp1,tmp2],options);
);
+////%Htick end////
-Drwxy():=(
+////%Drwxy start////
+Drwxy():=Drwxy([]); //180820from
+Drwxy(options):=(
//help:Drwxy();
- Com2nd("Drwxy()");
+//help:Drwxy(options=["Origin=[0,0]","Xrng=","Yrng=","Ax=l,x,e,..."]);
+ regional(tmp);
+ tmp="";
+ forall(options,
+ if(length(tmp)>0,
+ tmp=tmp+","+Dqq(#);
+ ,
+ tmp=Dqq(#);
+ );
+ );
+ Com2nd("Drwxy("+tmp+")"); //180820to
Addax(0); // 16.01.21
);
+////%Drwxy end////
+////%Drwpt start////
Drwpt(pstr):=Drawpoint(pstr);
Drwpt(ptlist,nn):=( // 16.03.05 from
//help:Drwpt(A);
@@ -546,12 +646,16 @@ Drawpoint(ptlistorg,nn):=(
);
Setpen(thick); // 16.04.09
);// 16.03.05 until
+////%Drwpt end////
+////%Addax start////
Addax(param):=(
//help:Addax(0);
ADDAXES=textformat(param,5);
);
+////%Addax end////
+////%Expr start////
Expr(Pt,Dr,St):=Expr([Pt,Dr,St]);
Expr(list):=Expr(list,[]);
Expr(listorg,options):=( //16.10.09
@@ -567,7 +671,9 @@ Expr(listorg,options):=( //16.10.09
);
Letter(list,options);
);
+////%Expr end////
+////%Letter start////
Letter(Pt,Dr,St):=Letter([Pt,Dr,St]);
Letter(list):=Letter(list,[]);
Letter(list,options):=(
@@ -616,10 +722,14 @@ Letter(list,options):=(
Str=replace(Str,"`","'");//180303
tmp=Dq+","+Dq+Str+Dq+")";
if(Noflg==0,
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Com2nd("Letter("+Lcrd(Pos)+","+Dq+Dir+tmp);//16.10.10
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- );
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Com2nd("Letter("+Lcrd(Pos)+","+Dq+Dir+tmp);//16.10.10
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("}");//180722
+ );
+ );
if(Noflg<2,
Xmv=0;//16.10.13
Ymv=-4;
@@ -652,7 +762,9 @@ Letter(list,options):=(
Nj=Nj+3;
);
);
+////%Letter end////
+////%Letterrot start////
Letterrot(pt,dir,str):=Letterrot(pt,dir,0,0,str,[]);
Letterrot(pt,dir,Arg1,Arg2):=(
if(islist(Arg2),
@@ -662,9 +774,10 @@ Letterrot(pt,dir,Arg1,Arg2):=(
);
);
Letterrot(pt,dir,movstr,str,options):=(
-//help:Letterrot(C,B-A,"AB"):
-//help:Letterrot(C,B-A,0,5,"AB"):
-//help:Letterrot(C,B-A,"t0n5","AB"):
+// help:Letterrot(C,B-A,"AB");
+// help:Letterrot(C,B-A,0,5,"AB");
+//help:Letterrot(C,B-A,AB",["Size=20"]);
+//help:Letterrot(C,B-A,"t0n5","AB");
regional(tmov,nmov,tmp,tmp1,tmp2,color);
tmp1=indexof(movstr,"t");
tmp2=indexof(movstr,"n");
@@ -687,11 +800,17 @@ Letterrot(pt,dir,tmov,nmov,str,options):=(
color=tmp_(length(tmp)-2);
Letter([pt,"c",str],append(options,"notex"));
tmp=replace(str,"\","\\"); //17.10.18
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Com2nd("Letterrot("+pt+","+dir+","+tmov+","+nmov+",'"+tmp+"')");
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
+ if(color!=KCOLOR, //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Com2nd("Letterrot("+pt+","+dir+","+tmov+","+nmov+","+Dqq(tmp)+")");//180805
+ if(color!=KCOLOR, //180904
+ Texcom("}");//180722
+ );
);
+////%Letterrot end////
+////%Exprrot start////
Exprrot(pt,dir,str):=Exprrot(pt,dir,0,0,str,[]);
Exprrot(pt,dir,Arg1,Arg2):=(
if(islist(Arg2),
@@ -701,9 +820,10 @@ Exprrot(pt,dir,Arg1,Arg2):=(
);
);
Exprrot(pt,dir,movstr,str,options):=(
-//help:Exprrot(C,B-A,"d"):
-//help:Exprrot(C,B-A,0,5,"d"):
-//help:Exprrot(C,B-A,"t0n5","d"):
+// help:Exprrot(C,B-A,"d");
+// help:Exprrot(C,B-A,0,5,"d");
+//help:Exprrot(C,B-A,"d",["Color=red"]);
+//help:Exprrot(C,B-A,"t0n5","d");
regional(tmov,nmov,tmp,tmp1,tmp2,color);
tmp1=indexof(movstr,"t");
tmp2=indexof(movstr,"n");
@@ -726,11 +846,17 @@ Exprrot(pt,dir,tmov,nmov,str,options):=(
color=tmp_(length(tmp)-2);
Expr([pt,"c",str],append(options,"notex"));
tmp=replace(str,"\","\\"); //17.10.18
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Com2nd("Exprrot("+pt+","+dir+","+tmov+","+nmov+",'"+tmp+"')");
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
+ if(color!=KCOLOR, //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Com2nd("Exprrot("+pt+","+dir+","+tmov+","+nmov+","+Dqq(tmp)+")");//180802
+ if(color!=KCOLOR, //180904
+ Texcom("}");//180722
+ );
);
+////%Exprrot end////
+////%Slider start////
Putslider(ptstr,p1,p2):=Slider(ptstr,p1,p2);
Slider(ptstr,p1,p2):=( //17.04.11
//help:Slider("A-C-B",[-3,0],[3,0]);
@@ -759,7 +885,9 @@ Slider(ptstr,p1,p2):=( //17.04.11
Putonseg(pC,parse("sg"+pA+pB));
// create([pC],"PointOn",[parse(sname),0.5]);
);
+////%Slider end////
+////%Putpoint start////
Putpoint(name,Pt):=Putpoint(name,Pt,Pt);
Putpoint(name,Ptinit,Pt):=(
//help:Putpoint("A",[1,2],[1,A.y]);
@@ -772,7 +900,9 @@ Putpoint(name,Ptinit,Pt):=(
parse(ptstr);
);
);
+////%Putpoint end////
+////%Bezierpt start////
Bezierpt(t,ptlist,ctrlist):=(
regional(flg3,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9);
p0=ptlist_1;
@@ -799,11 +929,15 @@ Bezierpt(t,ptlist,ctrlist):=(
p9=(1-t)*p7+t*p8;
if(flg3==0,p7,p9);
);
+////%Bezierpt end////
+////%Bezier start////
Bezier(ptctrlist):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,[]);
Bezier(ptctrlist,options):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,options);
Bezier(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
Bezier(nm,ptlist,ctrlist,options):=BezierCurve(nm,ptlist,ctrlist,options);
+////%Bezier end////
+////%BezierCurve start////
BezierCurve(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]);
BezierCurve(nm,ptlistorg,ctrlistorg,options):=(
//help:Bezier("1",[A,D],[B,C]);
@@ -867,17 +1001,24 @@ BezierCurve(nm,ptlistorg,ctrlistorg,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
);
+ BezierCtrL=ctrlist; //181001
list;
);
+////%BezierCurve end////
+////%Readcsvsla start////
Readcsvsla(fname):=Readplotdigdata(fname,[]);
Readcsvsla(fname,options):=Readplotdigdata(fname,options);
Readplotdigdata(fname):=Readplotdigdata(fname,[]);
@@ -927,7 +1068,9 @@ Readplotdigdata(fname,options):=(
ptdata=tmp1;
ptdata;
);
+////%Readcsvsla end////
+////%Putbezierdata start////
Putbezierdata(name,ptL):=Putbezierdata(name,ptL,[]);
Putbezierdata(name,ptL,options):=(
regional(psize,Deg,tmp,tmp1,tmp2,p1,p2,pts,ctrs);
@@ -991,11 +1134,15 @@ Putbezierdata(name,ptL,options):=(
);
[pts,ctrs,name];
);
+////%Putbezierdata end////
+////%Bezierstart start////
Bezierstart(n):=( // 2016.02.26
BezierNumber=n;
);
+////%Bezierstart end////
+////%Mkbezierptcrv start////
Mkbezierptcrv(ptdata):=Mkbezierptcrv(ptdata,[]);
Mkbezierptcrv(ptdata,options):=(
//help:Mkbezierptcrv([A,B,C,D]);
@@ -1023,7 +1170,9 @@ Mkbezierptcrv(ptdata,options):=(
);
Out;
);
+////%Mkbezierptcrv end////
+////%Mkbeziercrv start////
Mkbeziercrv(nm,ptctrL):=Mkbeziercrv(nm,ptctrL,[]);
Mkbeziercrv(nm,ptctrL,options):=(
//help:Mkbeziercrv("1",[[A,B,C,D],[[P,Q],[R,S],T]]);
@@ -1036,7 +1185,9 @@ Mkbeziercrv(nm,ptctrL,options):=(
Bezier(nm,ptlist,ctrlist,options); // 17.01.06
);
);
+////%Mkbeziercrv end////
+////%Writebezier start////
Writebezier():=Writebezier(Fhead,"all");
Writebezier(head):=Writebezier(head,"all");
Writebezier(head,seL):=(
@@ -1080,7 +1231,9 @@ Writebezier(head,seL):=(
WriteOutData(head+".txt",dt);
dt;
);
+////%Writebezier end////
+////%Readbezier start////
Readbezier(file):=Readbezier(file,[]);
Readbezier(file,optionorg):=(
//help:Readbezier("xsr");
@@ -1134,10 +1287,13 @@ Readbezier(file,optionorg):=(
);
out;
);
+////%Readbezier end////
+////%Ospline start////
Ospline(nm,ptlist):=Ospline(nm,ptlist,[]);
Ospline(nm,ptlist,options):=(
//help:Ospline("1",ptlist,[options]);
+//help:Ospline(options=["Num=10"]);
regional(tmp,tmp1,tmp2,list,ptL,ctrL,name,closed,flg,
p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32);
name="o"+nm;
@@ -1192,66 +1348,61 @@ Ospline(nm,ptlist,options):=(
pQ=p2+(p2-p1);
ctrL_tmp=[pQ];
);
- Bezier("o"+nm,list,ctrL,options);
+ Bezier("o"+nm,list,ctrL,options);
);
-
+////%Ospline end////
+
+////%CRspline start////
CRspline(nm,ptL):=CRspline(nm,ptL,[]);
-CRspline(nm,ptL,options):=(
+CRspline(nm,ptL,options):=( //180822
// Catmull-Rom spline
//help:CRspline("1",[A,B,C,A]);
- regional(name,ptlist,ctrpts,eqL,opcindy,c,v,tmp,tmp1,tmp2,ctrlist,cflg);
- name="crsp"+nm;
- if(MeasureDepth(ptL)==1,tmp=[ptL],tmp=ptL);
- ptlist=tmp_1;
- if(length(tmp)==1,
+//help:CRspline(options=["Num=10"]);
+ regional(name,Eps,ptlist,cc,nv,pm,p0,p1,p2,p3,
+ ctrlist,cflg,qq,rr,tmp);
+ name="CR"+nm;
+ ptlist=apply(ptL,Lcrd(#));
+ Eps=10^(-5);
+ cflg=0;
+ if(dist(ptlist_1,ptlist_(length(ptlist)))<Eps,
cflg=1;
- ,
- cflg=0;
- ctrpts=tmp_2;
- );
- c=1/6;
- tmp=Divoptions(options);
- eqL=tmp_5;
- opcindy=tmp_(length(tmp)); // 15.03.05
- forall(eqL,
- if(substring(#,0,1)=="R",
- tmp2=indexof(#,"=");
- c=parse(substring(#,tmp2,length(#)));
- );
);
- ptlist=apply(ptlist,Lcrd(#)); // 16.08.16
+ cc=1/6;
ctrlist=[];
forall(1..(length(ptlist)-1),
+ p1=ptlist_#;
+ p2=ptlist_(#+1);
+ tmp=p2-p1;
+ nv=[-tmp_2,tmp_1];
+ pm=(p1+p2)/2;
if(#==1,
- if(cflg==0,
- tmp1=ctrpts_1;
+ p3=ptlist_(#+2);
+ if(cflg==0,
+ p0=Reflectpoint(p3,[pm,pm+nv]);
,
- v=ptlist_2-ptlist_(length(ptlist)-1);
- tmp1=ptlist_#+c*v;
+ p0=ptlist_(length(ptlist)-1);
);
,
- v=ptlist_(#+1)-ptlist_(#-1);
- tmp1=ptlist_#+c*v;
- );
- if(#==length(ptlist)-1,
- if(cflg==0,
- tmp2=ctrpts_2;
+ p0=ptlist_(#-1);
+ if(#==length(ptlist)-1,
+ if(cflg==0,
+ p3=Reflectpoint(p0,[pm,pm+nv]);
+ ,
+ p3=ptlist_2;
+ );
,
- v=ptlist_2-ptlist_#;
- tmp2=ptlist_(#+1)-c*v;
+ p3=ptlist_(#+2);
);
- ,
- v=ptlist_(#+2)-ptlist_#;
- tmp2=ptlist_(#+1)-c*v;
);
- tmp=select(options,indexof(text(#),"->")>0);
- tmp=append(tmp,"notex"); //15.03.05
- Pointdata(name+text(#),[tmp1,tmp2],tmp);
- ctrlist=append(ctrlist,[tmp1,tmp2]);
+ qq=p1+cc*(p2-p0);
+ rr=p2+cc*(p1-p3);
+ ctrlist=append(ctrlist,[qq,rr]);
);
- Bezier(nm,ptlist,ctrlist,options);
+ Bezier(name,ptlist,ctrlist,options);
);
+////%CRspline end////
+////%Beziersmooth start////
Beziersmooth(nm,ptL):=Bzspline(nm,ptL,[]);
//help:Beziersmooth("1",[A,B,C,A]);
Beziersmooth(nm,ptL,options):=Bzspline(nm,ptL,options);
@@ -1314,7 +1465,9 @@ Bzspline(nm,ptLorg,options):=(
Bezier(nm,ptL,ctrlist,options);
[ptL,ctrlist];
);
+////%Beziersmooth end////
+////%Beziersym start////
Beziersym(nm,ptL):=Bzsspline(nm,ptL,[]);
Beziersym(nm,ptL,options):=Bzsspline(nm,ptL,options);
Bzsspline(nm,ptL):=Bzsspline(nm,ptL,[]);
@@ -1365,7 +1518,9 @@ Bzsspline(nm,ptLorg,options):=(
Bezier(nm,ptL,ctrlist,options);
[ptL,ctrlist];
);
+////%Beziersym end////
+////%Listbspline2bz start////
Listbspline2bz(listorg):=(
regional(Eps,list,pcl,ptl,ctrl,k);
Eps=10^(-3);
@@ -1382,16 +1537,21 @@ Listbspline2bz(listorg):=(
ptl=apply(1..(length(pcl)-1),(pcl_#+pcl_(#+1))/2);
[ptl,ctrl];
);
+////%Listbspline2bz end////
+////%Bspline start////
Bspline(nm,ctrL):=Bspline(nm,ctrL,[]);
Bspline(nm,ctrL,options):=(
//help:Bspline("",[A,B,C]);
+//help:Bspline(options=["Num=10"]);
regional(list,tmp);
list=Listbspline2bz(ctrL);
tmp=BezierCurve("b"+nm,list_1,list_2,options);
tmp;
);
+////%Bspline end////
+////%MeetCurve start////
MeetCurve(Crv,Xorg,Yorg):=(
regional(Cv,tmp,tmp1,tmp2,X0,Y0,x1,x2,y1,y2,Ylist,Ban,Tate);
if(isstring(Crv),Cv=parse(Crv),Cv=Crv);
@@ -1453,7 +1613,9 @@ MeetCurve(Crv,Xorg,Yorg):=(
tmp=sort(Ylist,abs(#_1-Y0));
[X0,tmp_1];
);
+////%MeetCurve end////
+////%PutonLine start////
PutonLine(name,p1,p2):=PutonLine(name,p1,p2,[]);
PutonLine(name,p1org,p2org,options):=(
//help:PutonLine("C","sgAB");
@@ -1484,7 +1646,9 @@ PutonLine(name,p1org,p2org,options):=(
);
);
);
+////%PutonLine end////
+////%PutonSeg start////
PutonSeg(name,sgstr):=(
regional(seg,p1,p2);
if(isstring(sgstr),seg=parse(sgstr),seg=sgstr);
@@ -1522,10 +1686,13 @@ PutonSeg(name,p1org,p2org,options):=(
);
);
);
+////%PutonSeg end////
+////%PutonCurve start////
PutonCurve(pn,crv):=PutonCurve(pn,crv,[]);
PutonCurve(pn,crv,options):=(
-//help:PutonCurve("A","gr1");
+//help:Putoncurve("A","gr1");
+//help:Putoncurve("A","gr1",[0,XMAX]);
regional(Pmt,pstr,optionL,leftlim,rightlim,tmp,tmp1,Flg,Msg);
if(!islist(options),optionL=[options],optionL=options);
leftlim=XMIN;
@@ -1565,7 +1732,9 @@ PutonCurve(pn,crv,options):=(
println("Put "+pn+" on Curve "+text(crv));
);
);
+////%PutonCurve end////
+////%CrossPoint start////
CrossPoint(name,Crv1,Crv2,range):=(
regional(Mx1,Mx2,Mx3,tmp,Crs1,Crs2,Crs3,Crs4,df1,df2);
Mx1=range_1; Mx2=range_2;
@@ -1585,32 +1754,36 @@ CrossPoint(name,Crv1,Crv2,range):=(
);
Putpoint(name,Crs1);
);
+////%CrossPoint end////
-Setscaling(sc):=(
-//help:Setscaling(3);
- SCALEX=1;
- SCALEY=sc;
- Com0th("Setscaling("+sc+")");
- Setwindow("Msg=no");
-);
-
+////%Periodfun start////
Periodfun(defL,rep):=Periodfun(defL,rep,[]);
-Periodfun(defL,rep,optionorg):=( // 16.11.24
-//help:Periodfun(["0",[-1,0],"1",1,[0,1],1],2(num of repetition),options);
-//help:Periodfun(options=["Con=y"]);
+Periodfun(defL,reporg,optionorg):=( // 16.11.24
+//help:Periodfun(["0",[-1,0],1(Num=),"1",[0,1],1(Num)],2(repeat count),options);
+//help:Periodfun(repeat count=n or [repeatL,repeatR]);
+//help:Periodfun(options=["Con(nect)=da,Color=red"]);//180725
//help:Periodfun(defL=[function string, range, devision number,...]);
- regional(nn,fun,range,num,options,nr,maxfun,
+ regional(nn,fun,range,num,options,nr,maxfun,rep,np,
tmp,tmp1,tmp2,eqL,connect,minx,maxx,pdata,Eps,prept);
+ rep=reporg;
+ if(length(rep)==1,rep=[rep,rep]);//180724
options=optionorg;
- tmp=Divoptions(options);
- eqL=tmp_5;
- connect="Y";
+// tmp=Divoptions(options);
+ eqL=options;
+ connect=["da"];//180725
forall(eqL,
- tmp=indexof(#,"=");
- tmp2=substring(#,tmp,tmp+1);
- tmp=substring(#,0,3);
- if(Toupper(tmp)=="CON",
- connect=Toupper(tmp2);
+ tmp=indexof(#,"=");//180725from
+ tmp=[substring(#,0,tmp-1),substring(#,tmp,length(#))];
+ if(Toupper(substring(tmp_1,0,3))=="CON",
+ println([1658,tmp_2]);
+ tmp1=Toupper(Op(1,tmp_2));
+ if(tmp1=="N",
+ connect=[];
+ ,
+ if(tmp1!="Y",
+ connect=tokenize(tmp_2,",");
+ );
+ );//180725to
options=remove(options,[#]);
);
);
@@ -1638,16 +1811,24 @@ Periodfun(defL,rep,optionorg):=( // 16.11.24
"<=x and x<"+tmp2+") then "+fun+" ";
);
per=maxx-minx;
- forall(1..rep,nr,
- tmp1=[];
- forall(pdata,
- Translatedata("p"+#+text(nr),#,[per*nr,0],options);
- Translatedata("m"+#+text(nr),#,[-per*nr,0],options);
- tmp1=concat(tmp1,["trp"+#+text(nr),"trm"+#+text(nr)]);
- );
- );
- pdata=concat(pdata,tmp1);
- if(connect=="Y",
+ tmp1=[];
+ forall(1..(rep_1),nr, //180724from
+ forall(reverse(1..(length(pdata))),np,
+ Translatedata("m"+np+text(nr),pdata_np,[-per*nr,0],options);
+ tmp1=concat(["trm"+np+text(nr)],tmp1);
+ );
+ );
+ tmp2=[];
+ forall(1..(rep_2),nr,
+ forall(1..(length(pdata)),np,
+ Translatedata("p"+np+text(nr),pdata_np,[per*nr,0],options);
+ tmp2=concat(tmp2,["trp"+np+text(nr)]);
+ );
+ );//180724to
+ pdata=concat(tmp1,pdata);
+ pdata=concat(pdata,tmp2);
+ if(length(connect)>0, //180725
+ connect=append(connect,"Msg=n"); //180725
Eps=10^(-5);
pdata=sort(pdata,[parse(#)_1_1]);
prept=parse(pdata_1)_1;
@@ -1656,7 +1837,7 @@ Periodfun(defL,rep,optionorg):=( // 16.11.24
tmp1=tmp_1;
tmp2=tmp_(length(tmp));
if(|prept-tmp1|>Eps,
- Listplot("con"+text(#),[prept,tmp1],append(options,"da"));
+ Listplot("con"+text(#),[prept,tmp1],concat([],connect));//180725
);
prept=tmp_(length(tmp));
);
@@ -1664,7 +1845,9 @@ Periodfun(defL,rep,optionorg):=( // 16.11.24
mxfun=substring(mxfun,4,length(mxfun)-1);
[mxfun,per];
);
+////%Periodfun end////
+////%Fourierseries start////
Fourierseries(nm,coeff,per,nterm):=
Fourierseries(nm,coeff,per,nterm,[]); // 16.11.24
Fourierseries(nm,coeff,per,nterm,options):=(
@@ -1691,7 +1874,9 @@ Fourierseries(nm,coeff,per,nterm,options):=(
);
Plotdata("four"+nm,fs,"x",options);
);
+////%Fourierseries end////
+////%Tabledatalight start////
Tabledatalight(nm,xLst,yLst,rmvL):=Tabledatalight(nm,xLst,yLst,rmvL,[]);
Tabledatalight(nm,xLst,yLst,rmvL,optionorg):=(
//help:Tabledatalight("",xLst,yLst,rmvL,[2,"Rng=y"]);
@@ -1774,7 +1959,9 @@ Tabledatalight(nm,xLst,yLst,rmvL,optionorg):=(
);
Tb;
);
+////%Tabledatalight end////
+////%Tabledata start////
Tabledata(nm,n,m,xsize,ysize,rmvL):=
Tabledata(nm,n,m,xsize,ysize,rmvL,[]);
Tabledata(nm,n,m,xsize,ysize,rmvL,options):=(
@@ -1906,7 +2093,9 @@ Tabledata(nm,xLst,yLst,rmvL,optionorg):=(
);
Tb;
);
+////%Tabledata end////
+////%Tseginfo start////
Tseginfo(seg):=(
regional(cr,tp,tpc,n1,n2,n3,tmp,tmp1,tmp2);
if(substring(seg,0,2)=="sg",
@@ -1928,7 +2117,9 @@ Tseginfo(seg):=(
n3=substring(cr,tmp2,length(cr));
[tp+n1,tpc,parse(n2),parse(n3)];
);
+////%Tseginfo end////
+////%Tsegrmv start////
Tsegrmv(rmvL):=Tsegrmv(rmvL,[]);
Tsegrmv(rmvL,options):=(
regional(cr,gcL,flg,gc,hd,tail,tpc,m1,m2,n1,n2,tmp,tmp1,tmp2);
@@ -1972,7 +2163,9 @@ Tsegrmv(rmvL,options):=(
);
);
);
+////%Tsegrmv end////
+////%Tgrid start////
Tgrid(ptstr):=(
//help:Tgrid("c2r5");
regional(tmp,tmp1,tmp2);
@@ -1988,7 +2181,9 @@ Tgrid(ptstr):=(
[tb_1_(tmp1+1)_1,tb_2_(tmp2+1)_2];
);
);
+////%Tgrid end////
+////%Tlistplot start////
Tlistplot(ptL):=Tlistplot(ptL,[]);
Tlistplot(Ag1,Ag2):=(
regional(nm,ptL,options);
@@ -2019,7 +2214,9 @@ Tlistplot(nm,ptL,options):=(
tmp=apply(ptL,Tgrid(#)); // 15.06.03
Listplot(nm,tmp,tmp1);
);
+////%Tlistplot end////
+////%ChangeTablestyle start////
ChangeTablestyle(nameL,style):=(
////help:ChangeTablestyle(["r0c0c3"],["da"]);
regional(nmL,grid,head,sb,tmp,tmp1,tmp2,
@@ -2074,7 +2271,9 @@ ChangeTablestyle(nameL,style):=(
);
);
);
+////%ChangeTablestyle end////
+////%Findcell start////
Findcell(pos1,pos2):=Findcell("",pos1,pos2);
Findcell(Tbdata,pos1,pos2):=(
//help:Findcell("c0r0","c2r1");
@@ -2102,7 +2301,9 @@ Findcell(Tbdata,pos1,pos2):=(
dy=abs(posnw_2-ctr_2);
[ctr,dx,dy];
);
+////%Findcell end////
+////%Putcell start////
Putcell(pos1,pos2,dir,lttr):=Putcell("",pos1,pos2,dir,lttr);
Putcell(Tbdata,pos1,pos2,dir,lttr):=(
//help:Putcell("c0r0","c2r1","lt","abc");
@@ -2138,7 +2339,9 @@ Putcellexpr(Tbdata,pos1,pos2,dir,ex):=(
//help:Putcellexpr(2,3,"c","\sin x");
Putcell(Tbdata,pos1,pos2,dir,"$"+text(ex)+"$");
);
+////%Putcell end////
+////%Putrow start////
Putrow(nrow,dir,lttrL):=Putrow("",nrow,dir,lttrL);
Putrow(Tbdata,nrow,dir,lttrL):=(
//help:Putrow(1,"c",["x","y","z"]);
@@ -2148,7 +2351,9 @@ Putrow(Tbdata,nrow,dir,lttrL):=(
Putcell(Tbdata,#,nrow,dir,lttrL_#);
);
);
+////%Putrow end////
+////%Putrowexpr start////
Putrowexpr(nrow,dir,exL):=Putrowexpr("",nrow,dir,exL);
Putrowexpr(Tbdata,nrow,dir,exL):=(
//help:Putrowexpr(2,"r",["x","y","z"]);
@@ -2156,7 +2361,9 @@ Putrowexpr(Tbdata,nrow,dir,exL):=(
lttrL=apply(exL,"$"+#+"$");
Putrow(Tbdata,nrow,dir,lttrL);
);
+////%Putrowexpr end////
+////%PutcoL start////
PutcoL(mcol,dir,lttrL):=PutcoL("",mcol,dir,lttrL);
PutcoL(Tbdata,mcol,dir,lttrL):=(
//help:PutcoL(1,"c",["x","y","z"]);
@@ -2166,6 +2373,9 @@ PutcoL(Tbdata,mcol,dir,lttrL):=(
Putcell(Tbdata,mcol,#,dir,lttrL_#);
);
);
+////%PutcoL end////
+
+////%PutcoLexpr start////
PutcoLexpr(mcol,dir,exL):=PutcoLexpr("",mcol,dir,exL);
PutcoLexpr(Tbdata,mcol,dir,exL):=(
//help:PutcoLexpr(2,"r",["x","y","z"]);
@@ -2173,7 +2383,9 @@ PutcoLexpr(Tbdata,mcol,dir,exL):=(
lttrL=apply(exL,"$"+#+"$");
PutcoL(Tbdata,mcol,dir,lttrL);
);
+////%PutcoLexpr end////
+////%Setrange start////
Setrange():=(
//help:Setrange();
SW.xy=Pcrd([XMIN,YMIN]);
@@ -2181,146 +2393,9 @@ Setrange():=(
drawpoly([Pcrd([XMIN,YMIN]), Pcrd([XMAX,YMIN]),
Pcrd([XMAX,YMAX]),Pcrd([XMIN,YMAX])],color->[1,1,1]);
);
+////%Setrange end////
-Sciform(list):=(
- regional(plotlist,comp,pos,out,out2,nn,strL,flg,
- tmp,tmp1,tmp2,tmp3,Nj);
- plotlist=Flatten([list]);
- out=replace(plotlist_1,".xy","");
- out=replace(out,".x","(1)");
- out=replace(out,".y","(2)");
- if(length(plotlist)==1,
- comp=[];
- forall(1..length(out),
- comp=append(comp,substring(out,#-1,#));
- );
- out="";
- pos=0;
- forall(comp,
- if(#!="'",
- out=out+#;
- ,
- if(pos==0,
- tmp=indexof(out,"Assign(");
- if(substring(out,length(out)-7,length(out))=="Assign(",
- out=out+"'";
- pos=1;
- ,
- out=out+"Assign('";
- pos=2;
- );
- ,
- if(pos==2,
- out=out+"')";
- ,
- out=out+"'";
- );
- pos=0;
- );
- );
- );
- ,
- forall(2..length(plotlist),
- comp=plotlist_#;
- if(isstring(comp),
- pos=indexof(comp,"Assign(");
- if(pos>0,
- comp=substring(comp,6,length(comp));
- );
- out=out+"Assign(";
- comp=replace(comp,".xy","");
- comp=replace(comp,".x","(1)");
- comp=replace(comp,".y","(2)");
- out=out+"'"+comp+"'";
- out=out+"),";
- );
- if(islist(comp),
- forall(comp,
- out=out+"'"+#+"',";
- );
- );
- );
- if(length(plotlist)>1,
- out=substring(out,0,length(out)-1);
- out=out+");";
- );
- );
- pos=[];
- forall(1..length(out),
- tmp=indexof(substring(out,#-1,length(out)),"Assign");
- if(tmp>0,
- tmp1=#-1+tmp;
- if(length(pos)==0,
- pos=[tmp1];
- ,
- if(pos_(length(pos))<tmp1,
- pos=append(pos,tmp1);
- );
- );
- );
- );
- if(length(pos)>0,
- strL=[];
- Nj=0;
- forall(pos,
- tmp=substring(out,Nj,#-1);
- strL=append(strL,tmp);
- Nj=#-1;
- );
- strL=append(strL,substring(out,Nj,length(out)));
- out="";
- forall(strL,
- if(indexof(#,"Assign")==0,
- out=out+#;
- ,
- tmp=indexof(#,"('");
- tmp1=indexof(#,"')");
- tmp2=substring(#,tmp+1,tmp1-2);
- tmp3=substring(#,tmp1-2,length(#));
- if(indexof(tmp2,"=")==0,
- out=out+#;
- ,
- tmp=substring(tmp2,0,indexof(tmp2,"="));
- out=out+"'"+tmp+"'+"+"Assign('";
- tmp=substring(tmp2,indexof(tmp2,"="),length(tmp2));
- out=out+tmp+tmp3;
- );
- );
- );
- );
- out2=""; // patched 16.01.21 from
- nn=length(out);
- flg=0;
- forall(1..nn,
- if(flg==0,
- tmp=indexof(out,"='+Assign('");
- if(tmp==0,
- out2=out2+out;
- flg=1;
- ,
- out2=out2+substring(out,0,tmp);
- out=substring(out,tmp+10,length(out));
- tmp=indexof(out,"'"); // 16.04.19 from
- tmp1=substring(out,0,tmp-1);
- tmp2="1234567890";
- tmp=apply(1..length(tmp1),
- indexof(tmp2,substring(tmp1,#-1,#)));
- tmp=min(tmp);
- if(tmp==0, // 16.04.19 until
- out2=out2+"'+Assign('";
- ,
- tmp=indexof(out,"'");
- out=substring(out,0,tmp)+substring(out,tmp+1,length(out));
- // 16.04.18 until
- );
- );
- );
- );
- out2=replace(out2,"Dist=","D=");
- out2=replace(out2,"Dis=","D=");
- out2;
-);
-
+////%RSform start////
RSform(str):=RSform(str,3);
RSform(str,listfrom):=(
//help:RSform(string,listfrom);
@@ -2356,14 +2431,18 @@ RSform(str,listfrom):=(
out=replace(out,"c(2)","[2]");
out;
);
+////%RSform end////
+////%RSslash start////
RSslash(str):=( //17.09.24
regional(tmp);
tmp=replace(str,"\","\\");
// tmp=replace(tmp,"\\\\","\\");
tmp;
);
+////%RSslash end////
+////%Rform start////
Rform(list):=(
regional(plotlist,comp,pos,out,strL,tmp,tmp1,tmp2,tmp3,Nj);
out=list;
@@ -2375,7 +2454,9 @@ Rform(list):=(
out=replace(out,".y","[2]");
out;
);
+////%Rform end////
+////%Defvar start////
Defvar(varstr):=(
regional(name,value,tmp,tmp1);
if(isstring(varstr),
@@ -2399,7 +2480,6 @@ Defvar(varstr):=(
); // 16.11.16until
);
);
-
Defvar(name,value):=(
//help:Defvar("a",0.3);
//help:Defvar(["a",0.3,"b",2]);
@@ -2422,32 +2502,52 @@ Defvar(name,value):=(
VLIST=select(VLIST,#_1!=name); // 15.02.08
VLIST=prepend([name,value],VLIST);
);
+////%Defvar end////
-IftoR(strorg):=(
- regional(str,pre,post,sub,ppL,ifstr,out,tmp,tmp1,tmp2);
- str=strorg;
- ifstr=indexof(str,"if(");
- if(ifstr==0,
- out=replace(str,",","}else{");
- ,
- pre=substring(str,0,ifstr-1)+"if(";
- ppL=Bracket(str,"()");
- tmp1=ifstr+2;
- tmp=select(ppL,#_1==tmp1);
- tmp=select(ppL,#_2==-tmp_1_2);
- tmp2=tmp_1_1;
- sub=substring(str,tmp1,tmp2-1);
- post="}"+substring(str,tmp2,length(str));
- tmp=indexof(sub,",");
- tmp1=substring(sub,0,tmp-1);
- tmp2=substring(sub,tmp,length(sub));
- sub=tmp1+"){"+tmp2;
- tmp=IftoR(sub);
- out=pre+tmp+"}";
- );
+////%IftoR start////
+IftoR(strorg):=( //180802
+ regional(str,ifL,ppL,cpL,kk,sL,out,
+ tmp,tmp1,tmp2,tmp3,tmp4);
+ str=replace(strorg,LFmark,"");
+ ifL=Indexall(str,"if(");
+ ppL=Bracket(str,"()");
+ cpL=Indexall(str,",");
+ tmp1=Bracket(str,"[]");
+ forall(1..(length(tmp1)/2),kk,
+ cpL=select(cpL,#<tmp1_(2*kk-1)_1%#_1>tmp1_(2*kk)_1);
+ );
+ forall(1..length(ifL),kk,
+ tmp=select(ppL,#_1>ifL_kk);
+ tmp1=tmp_1;
+ tmp2=select(tmp,#_2==-tmp1_2);
+ tmp2=tmp2_1;
+ tmp3=select(cpL,#>tmp1_1 & #<tmp2_1);
+ ifL_kk=[tmp1_1,tmp2_1,tmp1_2,tmp3];
+ );
+ forall(1..length(cpL),kk,
+ tmp=select(1..length(ifL),contains(ifL_#_4,cpL_kk));
+ tmp1=tmp_(length(tmp));
+ cpL_kk=[cpL_kk,tmp1];
+ );
+ sL=apply(1..length(str),substring(str,#-1,#));
+ forall(1..length(ifL),kk,
+ tmp1=ifL_kk_1;
+ tmp2=ifL_kk_2;
+ tmp=select(cpL,#_2==kk);
+ tmp3=apply(tmp,#_1);
+ sL_tmp1="(";
+ sL_tmp2="}";
+ sL_(tmp3_1)="){";
+ if(length(tmp3)>1,
+ sL_(tmp3_2)="}else{";
+ );
+ );
+ out=sum(sL);
out;
);
+////%IftoR end////
+////%FortoR start////
FortoR(strorg):=(
regional(str,pre,post,sub,ppL,forstr,out,tmp,tmp1,tmp2);
str=strorg;
@@ -2478,7 +2578,9 @@ FortoR(strorg):=(
out=replace(out,"..",":");
out;
);
+////%FortoR end////
+////%Deffun start////
Deffun(name,bodylist):=(
//help:Deffun("f(x)",["regional(y)","y=x^2*(x-3)","y"]);
regional(funstr,str,Pos,nbody,bdy,ppL,bpL,excma,tmp,tmp1,tmp2);
@@ -2527,7 +2629,25 @@ Deffun(name,bodylist):=(
str=str+"return("+bodylist_(length(bodylist))+")}";
FUNLIST=append(FUNLIST,str);
);
+////%Deffun end////
+////%Inwindow start////
+Inwindow(point):=Inwindow(point,[XMIN,XMAX],[YMIN,YMAX]);
+Inwindow(point,xrng,yrng):=(
+//help:Inwindow(point);
+//help:Inwindow(point,xrange,yrange);
+ regional(Eps,pt,x,y,xmin,xmax,ymin,ymax,tmp);
+ Eps=10.0^(-6);
+ if(ispoint(point),pt=point.xy,pt=point);
+ x=pt_1; y=pt_2;
+ xmin=xrng_1; xmax=xrng_2;
+ ymin=yrng_1; ymax=yrng_2;
+ tmp=(x>xmin-Eps)&(x<xmax+Eps)&(y>ymin-Eps)&(y<ymax+Eps);
+ if(tmp,true,false);
+);
+////%Inwindow end////
+
+////%Windispg start////
Windispg():=(
regional(Nj,Nk,Dt,Vj,tmp,tmp1,tmp2,opcindy);
gsave();
@@ -2541,8 +2661,6 @@ Windispg():=(
if(Nj_2<0,tmp1=0,tmp1=Nj_2);
if(tmp1<10,
forall(Dt,Nk,
-// tmp2=apply(Nk,if(ispoint(#),Lcrd(#),#));
-// tmp2=apply(tmp2,Pcrd(#));
tmp2=Nk; // 14.12.04
if(length(Nk)>1,
tmp="connect("+textformat(tmp2,5)+
@@ -2558,16 +2676,9 @@ Windispg():=(
);
);
);
-// if(ADDAXES=="1", // 16.10.08from
-// draw([XMIN,0],[XMAX,0],color->[0,0.2,0]);
-// draw([0,YMIIN],[0,YMAX],color->[0,0.2,0]);
-// Letter([[XMAX,0],"e","x",[0,YMAX],"n","y"]);
-// Letter([[0,0],"sw","O"]);
-// ); // 16.10.08until
grestore();
layer(0);
);
-
Windispg(pltdata):=(
regional(pdata,Nj,Nk,Dt,tmp,tmp1,tmp2,opcindy);
gsave();
@@ -2602,8 +2713,11 @@ Windispg(pltdata):=(
grestore();
layer(0);
);
+////%Windispg end////
+////%WritetoRS start////
WritetoSci():=WritetoRS(); //17.12.19
+WritetoSci(Arg):=WritetoRS(Arg);//180619
WritetoRS():=WritetoRS(FnameR);// 17.09.17from
WritetoRS(Arg):=(
regional(string,filename,shch,tmp1,tmp2);
@@ -2623,7 +2737,7 @@ WritetoRS(Arg):=(
);
);
WritetoRS(filename,shchoice):=(
- regional(Plist,Pos,GrL,str,tmp,tmp1,tmp2,cmd);
+ regional(Plist,Pos,GrL,str,tmp,tmp1,tmp2,cmd,ns,spos,epos);
//help:WritetoRS(2);
println("Write to R "+filename);
Plist=[];
@@ -2670,8 +2784,8 @@ WritetoRS(filename,shchoice):=(
);//180409to
tmp=replace(Libname,"\","/"); //17.09.24from
println(SCEOUTPUT,"source('"+tmp+".r')");//temporary
- if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0),
- // 17.10.07added
+ if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0)
+ %(GPACK=="pict2e"), // 180817
tmp=replace(tmp+"_rep2e","\","/");
println(SCEOUTPUT,"source('"+tmp+".r')");
);
@@ -2763,12 +2877,27 @@ WritetoRS(filename,shchoice):=(
println(SCEOUTPUT,#);
);
);//180613to
- forall(COM2ndlist,
- if(indexof(#,"Texcom")==0, //17.09.22
- println(SCEOUTPUT,RSform(#));
+ forall(COM2ndlist,cmd,
+ tmp=substring(cmd,0,4);
+ if(contains(["Lett","Expr"],tmp), //180721from
+ tmp1=Indexall(cmd,Dq);
+ tmp2=length(tmp1)/4;
+ str=""; ns=0;
+ forall(tmp2,
+ spos=tmp1_(4*#-1); epos=tmp1_(4*#);
+ str=str+RSform(substring(cmd,ns,spos-1));
+ str=str+substring(cmd,spos-1,epos);
+ ns=epos;
+ );
+ str=str+substring(cmd,ns,length(cmd));
+ println(SCEOUTPUT,str);
,
- println(SCEOUTPUT,#);
- );
+ if(indexof(cmd,"Texcom")==0,
+ println(SCEOUTPUT,RSform(cmd));
+ ,
+ println(SCEOUTPUT,cmd);
+ );
+ ); //180721to
);
if(length(GrL)>0,
println(SCEOUTPUT," Drwline(GrL)");
@@ -2803,7 +2932,9 @@ WritetoRS(filename,shchoice):=(
closefile(SCEOUTPUT);
); //180513to
);
+////%WritetoRS end////
+////%Extractdata start////
Extractdata(name):=Extractdata(1,name,[]);
Extractdata(Arg1,Arg2):=(
if(isstring(Arg1),
@@ -2814,7 +2945,7 @@ Extractdata(Arg1,Arg2):=(
);
Extractdata(number,name,options):=(
//help:ExtractData("ha1");
-//help:ExtractData(1,"ha1");
+// help:ExtractData(1,"ha1");
regional(dlist,tmp,tmp1,tmp2,tmp3,File,Ltype,Noflg,opstr,opcindy,color);
tmp=Divoptions(options);
Ltype=tmp_1;
@@ -2847,17 +2978,23 @@ Extractdata(number,name,options):=(
);
if(Noflg<2,
if(isstring(Ltype),
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name);
- if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
- ,
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("{");Com2nd("Setcolor("+color+")");//180722
+ );
+ Ltype=GetLinestyle(text(Noflg)+Ltype,name);
+ if((Noflg==0)&(color!=KCOLOR), //180904
+ Texcom("}");//180722
+ );
+ ,
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name,Ltype,opcindy]);
);
tmp2;
);
+////%Extractdata end////
+////%RemoveOut start////
RemoveOut(pltlist):=(
regional(name,tmp,tmp1,tmp2);
forall(pltlist,name,
@@ -2869,18 +3006,30 @@ RemoveOut(pltlist):=(
GOUTLIST=tmp1;
);
);
+////%RemoveOut end////
+////%ReadOutData start////
ReadOutData():=ReadOutData(Fnameout);
ReadOutData(filename):=ReadOutData("",filename); //16.03.07
-ReadOutData(pathorg,filenameorg):=(
+ReadOutData(path,filename):=ReadOutData(path,filename,[]);//181024(2lines)
+ReadOutData(pathorg,filenameorg,options):=(
//help:ReadOutData();
-//help:Readoutdata();
//help:ReadOutData("file.txt");
-//help:Readoutdata("file.txt");
//help:ReadOutData("/datafolder","file.txt");
-//help:Readoutdata("/datafolder","file.txt");
+//help:ReadOutdata(options=["Disp=n(/y)]");
regional(path,filename,varname,varL,ptL,pts,tmp,tmp1,tmp2,tmp3,tmp4,
- nmbr,cmdall,cmd,cmdorg,outdt,goutdt);
+ nmbr,cmdall,cmd,cmdorg,outdt,goutdt,eqL,dispflg);
+ dispflg=1;
+ tmp=Divoptions(options); //181024from
+ eqL=tmp_5;
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=substring(tmp_1,0,1); tmp1=Toupper(tmp1);
+ tmp2=substring(tmp_2,0,1); tmp2=Toupper(tmp2);
+ if(tmp1=="D",
+ if(tmp2=="N",dispflg=0);
+ );
+ ); //181024to
path=pathorg; //16.03.07 from
if(length(path)>0,
setdirectory(path);
@@ -2959,10 +3108,14 @@ ReadOutData(pathorg,filenameorg):=(
setdirectory(Dirwork); // 16.03.07
);
print("readoutdata from "+tmp+" : ");
- println(varL);
+ if(dispflg==1, //181024from
+ println(varL);
+ ); //181024to
varL;
);
+////%ReadOutData end////
+////%WriteOutData start////
WriteOutData(filename,ptlist):=(
//help:WriteOutData("file.txt",["g1",gr1,"sg",sgAB]);
//help:Writeoutdata("file.txt",["g1",gr1,"sg",sgAB]);
@@ -3026,7 +3179,9 @@ WriteOutData(filename,ptlist):=(
Gstr=substring(Gstr,0,length(Gstr)-1)+"]";
println("writeoutdata "+filename+":"+Gstr);
);
+////%WriteOutData end////
+////%Makeshell start////
Makeshell():=(
if(length(Texmain)>0,
Texparent=Texmain;
@@ -3131,7 +3286,9 @@ Makeshell(texmainfile,flow):=(
closefile(SCEOUTPUT);
setdirectory(Dirwork);
);
+////%Makeshell end////
+////%Convsjiswin start////
Convsjiswin(dir,fname,ext):=( //180401
regional(ctr,flg,mx,tmp);
mx=200;
@@ -3157,7 +3314,9 @@ Convsjiswin(dir,fname,ext):=( //180401
println(tmp+" not converted "+text(flg));
);
);
+////%Convsjiswin end////
+////%Makebat start////
Makebat():=(
if(length(Texmain)>0,
Texparent=Texmain;
@@ -3247,8 +3406,11 @@ Makebat(texmainfile,flow):=(
path="";
);
if(indexof(flow,"r")>0,
- tmp=Dq+PathR+"\R"+Dq+" --vanilla --slave < execsrc.r";//180514
- // 17.09.14
+ if(indexof(Dirwork,"Users")>0, //180917from
+ tmp=Dq+PathR+"\R"+Dq+" --vanilla --slave < execsrc.r";//180514
+ ,
+ tmp=Dq+PathR+"\R"+Dq+" --vanilla --slave < "+Fhead+".r";
+ ); //180917to
println(SCEOUTPUT,tmp);
);
if(tex=="latex" % tex=="platex" % tex=="uplatex", //17.08.13
@@ -3296,7 +3458,9 @@ Makebat(texmainfile,flow):=(
);
setdirectory(drive+Dirwork);
);
+////%Makebat end////
+////%Addpackage start////
Addpackage(packorg):=(
//help:Addpackage("bm");
//help:Addpackage(["bm","enumerate"]);
@@ -3316,7 +3480,19 @@ Addpackage(packorg):=(
);
ADDPACK=concat(ADDPACK,packL); //17.06.25to
);
+////%Addpackage end////
+
+////%Usegraphics start////
+Usegraphics(gpack):=( //180817
+//help:Usegrapchics("pict2e");
+ if(!contains(ADDPACK,gpack),
+ Addpackage([gpack]);
+ );
+ GPACK=gpack;
+);
+////%Usegraphics end////
+////%Viewtex start////
Viewtex():=(
regional(texfile,tmp,tmp1,sep);
texfile=Fhead+"main";
@@ -3331,13 +3507,15 @@ Viewtex():=(
);//17.08.13until
); // 16.06.09until
println(SCEOUTPUT,tmp);
- if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0) ,
- //16.11.23,12.16
+ if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0)
+ %(GPACK=="pict2e"), //16.11.23,12.16,180817
if(indexof(PathT,"pdflatex")>0,
println(SCEOUTPUT,"\usepackage[pdftex]{pict2e}");//16.11.24
,
println(SCEOUTPUT,"\usepackage{pict2e}");//16.12.16
- println(SCEOUTPUT,"\usepackage{luatexja}");//16.12.18
+ if(indexof(PathT,"lualatex")>0, //180817
+ println(SCEOUTPUT,"\usepackage{luatexja}");
+ );
);
tmp=replace(Dirhead,"\","/"); //17.10.30from
tmp=replace(tmp,"scripts","tex/latex");
@@ -3394,7 +3572,9 @@ Viewtex():=(
);
WritetoRS(2); //17.09.19
);
+////%Viewtex end////
+////%Viewparent start////
Viewparent():=( //17.04.13
if(!isexists(Dirwork,Texparent+".tex"),
if(isstring(Texparent),
@@ -3414,7 +3594,9 @@ Viewparent():=( //17.04.13
kc();
);
);
+////%Viewparent end////
+////%Makecmdlist start////
Makecmdlist(libname):=(
//help:Makecmdlist("ketcindylib");
regional(cmdall,cmd,flg,tmp,tmp1,tmp2,out);
@@ -3446,7 +3628,9 @@ Makecmdlist(libname):=(
out=out_(2..tmp);
out=sort(out);
);
+////%Makecmdlist end////
+////%Savecmdlist start////
Savecmdlist(cmdlist,cmdfile):=(
SCEOUTPUT=openfile(cmdfile+".cs");
forall(cmdlist,
@@ -3454,7 +3638,9 @@ Savecmdlist(cmdlist,cmdfile):=(
);
closefile(SCEOUTPUT);
);
+////%Savecmdlist end////
+////%Quicksort start////
Quicksort(seq):=(
regional(pivot,left,right,out);
if(length(seq)<2,
@@ -3476,7 +3662,9 @@ Quicksort(seq):=(
);
out;
);
+////%Quicksort end////
+////%Lessstr start////
Lessstr(st1,st2):=(
regional(tmp,tmp1,tmp2,out);
tmp=min(length(st1),length(st2));
@@ -3505,7 +3693,9 @@ Lessstr(st1,st2):=(
);
out;
);
+////%Lessstr end////
+////%Figpdf start////
Figpdf():=Figpdf(Texparent,[]);
Figpdf(Arg1):=(
if(isstring(Arg1),
@@ -3624,7 +3814,9 @@ Figpdf(fnameorg,optionorg):=(
);
FigPdfList;
);
+////%Figpdf end////
+////%Makehelplist start////
Makehelplist(libname):=(
regional(cmdall,cmd,flg,lev,tmp,tmp1,out);
tmp=load(libname);
@@ -3670,7 +3862,9 @@ Makehelplist(libname):=(
);
sort(out);
);
+////%Makehelplist end////
+////%Helplist start////
Helplist():=Helplist(Dirlib,["+","+3d"],"helpJ");
// 15.05.22
Helplist(Arg):=(
@@ -3726,8 +3920,9 @@ Helplist(dir,files,help):=(
); // 16.12.31until
setdirectory(Dirwork);
);
+////%Helplist end////
-
+////%Help start////
Help():=(
forall(HLIST,
println(#);
@@ -3780,7 +3975,9 @@ Help(strorg):=(
if(flg==-1,println(" Help not read in"));
if(flg==0,println(" no example"));
);
+////%Help end////
+////%Helpkey start////
Helpkey(str):=(
regional(tmp,tmp1,tmp2);
tmp1=select(HLIST,indexof(#,str)>0);
@@ -3800,7 +3997,9 @@ Helpkey(str1,str2):=(
Help(tmp);
);
);
+////%Helpkey end////
+////%Slidework start////
Slidework():=Slidework(Dirwork); // 16.06.10
Slidework(dirorg):=(
//help:Slidework(directory);
@@ -3821,7 +4020,16 @@ Slidework(dirorg):=(
println(dir+ " not exists");
);
);
+////%Slidework end////
+////%Setslidemargin start////
+Setslidemargin(marginlist):=( // 180908
+//help:Setslidemargin([+5,-10]);
+ SlideMargin=marginlist;
+);
+////%Setslidemargin end////
+
+////%Setslidepage start////
Setslidepage():=( // 17.03.05
regional(tmp1,tmp2,tmp3);
tmp1=["letterc","boxc","framec","shadowc","xpos","size"];
@@ -3848,7 +4056,9 @@ Setslidepage(list):=( // 16.12.22
SlideColorList_3=SlideColorList_2;
SlideColorList_6=SlideColorList_5;
);
+////%Setslidepage end////
+////%Setslidemain start////
Setslidemain():=( // 17.03.05
regional(tmp1,tmp2,tmp3);
tmp1=["letterc","boxc","framec","xpos","size"];
@@ -3874,7 +4084,9 @@ Setslidemain(list):=( // 16.12.22
);
SlideColorList_11=SlideColorList_10;
);
+////%Setslidemain end////
+////%Setslidebody start////
Setslidebody():=( // 17.03.05
regional(tmp1,tmp2,tmp3);
tmp1=["letterc","style","thindense"];
@@ -3913,7 +4125,9 @@ Setslidebody(str,style,density):=( // 16.12.22,17.01.06,01.08
if(length(style)>0,BodyStyle=style);
ThinDense=density;//17.01.08
);
+////%Setslidebody end////
+////%Setslidehyper start////
Setslidehyper():=( 17.12.16from
Setslidehyper(["cl=true,lc=blue,fc=blue",125,70,1]);
);
@@ -3938,6 +4152,9 @@ Setslidehyper(driverorg,options):=(
eqL=tmp_5;
reL=tmp_6;
stL=tmp_7;
+ tmp1=select(eqL,length(Indexall(#,"="))>1); //180813from
+ eqL=remove(eqL,tmp1);
+ stL=concat(stL,tmp1); //180813to
if(length(stL)>0,
str=stL_1;
,
@@ -3957,6 +4174,15 @@ Setslidehyper(driverorg,options):=(
tmp1=replace(tmp1,"uc=","urlcolor=");
ADDPACK=select(ADDPACK,indexof(#,"hyperref")==0);
Addpackage(tmp1+"{hyperref}");
+ tmp=indexof(tmp1,"linkcolor=");//180813from
+ tmp1=substring(tmp1,tmp-1,length(tmp1));
+ tmp=indexof(tmp1,"=");
+ tmp1=substring(tmp1,tmp,length(tmp1));
+ tmp=indexof(tmp1,",");
+ if(length(tmp)>0,
+ tmp1=substring(tmp1,0,tmp-1);
+ );//180813to
+ LinkColor=tmp1;
LinkPosH=125;
LinkPosV=73;//180524
LinkSize=1;
@@ -3981,7 +4207,9 @@ Setslidehyper(driverorg,options):=(
);//180524to
);
); //17.12.16to
+////%Setslidehyper end////
+////%Settitle start////
Settitle(cmdL):=Settitle("",cmdL,[]); // 180608from
Settitle(Arg1,Arg2):=(
if(isstring(Arg1),
@@ -4054,7 +4282,9 @@ Settitle(titleold,cmdL,options):=(
);
TitleCmdL=concat(TitleCmdL,["\end{layer}","","}"]);
);
+////%Settitle end////
+////%Maketitle start////
Maketitle():=(
if(!isstring(TitleName), //17.04.13from
drawtext(mouse().xy,"Settitle not defined",
@@ -4065,7 +4295,7 @@ Maketitle():=(
);
Maketitle(name):=(
//help:Maketitle();
- regional(texfile,texmain,tmp,tmp1,sep);
+ regional(texfile,texmain,tmp,tmp1,sep,txtfile);
texfile=name;
texmain=name+"main";
SCEOUTPUT=openfile(texfile+".tex");
@@ -4125,8 +4355,35 @@ Maketitle(name):=(
Makeshell(texmain,"tv");
);
kc();
+ txtfile=Cindyname()+".txt"; //180815from
+ if(!isexists(Dircdy,txtfile),
+ setdirectory(Dircdy);
+ SCEOUTPUT=openfile(txtfile);
+ println(SCEOUTPUT,"title::"+name+"//");
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"%%%%%%%%%%%%%%%%//");
+ println(SCEOUTPUT,"main::(title)//");
+ println(SCEOUTPUT,"\slidepage[m]//");
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"%%%%%%%%%%%%%%%%//");
+ println(SCEOUTPUT,"new::(title)//");
+ println(SCEOUTPUT,"%repeat=1,para//");
+ println(SCEOUTPUT,"\slidepage//");
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"layer::{120}{0}//");
+ println(SCEOUTPUT,"%%putnote::s{65}{5}:://");
+ println(SCEOUTPUT,"end//");
+ println(SCEOUTPUT,"");
+ println(SCEOUTPUT,"itemize//");
+ println(SCEOUTPUT,"item//");
+ println(SCEOUTPUT,"end//");
+ closefile(SCEOUTPUT);
+ setdirectory(Dirwork); //180815to
+ );
);
+////%Maketitle end////
+////%Repeatsameslide start////
Repeatsameslide(repeatflg,sestr,addedL):=(
regional(seL,flg1,ss,nn,nrep,tmp,tmp1,tmp2,tmp3,str,j,k);
// global RepeatList, SCEOUTPUT, NonThinFlg
@@ -4187,7 +4444,7 @@ Repeatsameslide(repeatflg,sestr,addedL):=(
if(NonThinFlg==0,
if(!contains(["\begi","\end{"],substring(str,0,5)),//17.01.15
if(MiniFlg==0, //180526from
- println(SCEOUTPUT,"{\color[cmyk]{\thin,\thin,\thin,\thin}");//17.08.23
+ println(SCEOUTPUT,"{\color[cmyk]{\thin,\thin,\thin,\thin}%");//180701
println(SCEOUTPUT,str);
println(SCEOUTPUT,"}%");
,
@@ -4206,7 +4463,7 @@ Repeatsameslide(repeatflg,sestr,addedL):=(
);
if(NonThinFlg==1,
if(!contains(["\begi","\end{"],substring(str,0,5)),//17.01.15
- println(SCEOUTPUT,"{\color[cmyk]{\thin,\thin,\thin,\thin}");//17.08.23
+ println(SCEOUTPUT,"{\color[cmyk]{\thin,\thin,\thin,\thin}%");//180701
println(SCEOUTPUT,str);
,
println(SCEOUTPUT,str);
@@ -4237,7 +4494,7 @@ Repeatsameslide(repeatflg,sestr,addedL):=(
if(NonThinFlg==0,
if(!contains(["\begi","\end{"],substring(str,0,5)),//180526from
if(MiniFlg==0,
- tmp1="{\color[cmyk]{\thin,\thin,\thin,\thin}";//17.08.23
+ tmp1="{\color[cmyk]{\thin,\thin,\thin,\thin}%";//180701
tmp1=[tmp1,str,"}%"];
,
tmp1=[str];
@@ -4255,7 +4512,7 @@ Repeatsameslide(repeatflg,sestr,addedL):=(
);
if(NonThinFlg==1,
if(!contains(["\begi","\end{"],substring(str,0,5)),//17.01.15
- tmp1="{\color[cmyk]{\thin,\thin,\thin,\thin}";//17.08.23
+ tmp1="{\color[cmyk]{\thin,\thin,\thin,\thin}%";//180701
tmp1=[tmp1,str];
,
tmp1=[str];
@@ -4283,7 +4540,9 @@ Repeatsameslide(repeatflg,sestr,addedL):=(
);
);//16.12.05to
);
+////%Repeatsameslide end////
+////%Presentation start////
Presentation(texfile):=Presentation(texfile,texfile);
Presentation(texfile,txtfile):=(
//help:Presentation(texfile,txtfile);
@@ -4429,9 +4688,12 @@ Presentation(texfile,txtfile):=(
println(SCEOUTPUT,"\setcounter{ketpicctra}{18}%");
println(SCEOUTPUT,"\if#1m \setcounter{ketpicctra}{1}\fi");
println(SCEOUTPUT,"\hypersetup{linkcolor=black}%");
+ println(SCEOUTPUT,"");//180908
println(SCEOUTPUT,"\begin{layer}{118}{0}");
println(SCEOUTPUT,"\putnotee{122}{-\theketpicctra.05}{\small\thepage/\pageref{pageend}}");
- println(SCEOUTPUT,"\end{layer}\hypersetup{linkcolor=blue}}");//189524to
+ println(SCEOUTPUT,"\end{layer}\hypersetup{linkcolor="+LinkColor+"}");
+ println(SCEOUTPUT,"");//180908
+ println(SCEOUTPUT,"}");//189524to
forall(ADDPACK,// 16.06.09from
println(SCEOUTPUT,"\usepackage"+#);
);// 16.06.09to
@@ -4444,8 +4706,20 @@ Presentation(texfile,txtfile):=(
forall(tmp3,
println(SCEOUTPUT,#);
);
- if(indexof(PathT,"platex")>0,tmp="\ketmarginJ",tmp="\ketmarginE"); // 16.06.09
+ if(indexof(PathT,"platex")>0, //180903,180908from
+ tmp="\setmargin{"+text(25+SlideMargin_1)+"}{";
+ tmp=tmp+text(145-SlideMargin_1)+"}{";
+ tmp=tmp+text(15+SlideMargin_2)+"}{";
+ tmp=tmp+text(100-SlideMargin_2)+"}";
+ ,
+ tmp="\setmargin{"+text(20+SlideMargin_1)+"}{";
+ tmp=tmp+text(135-SlideMargin_1)+"}{";
+ tmp=tmp+text(15+SlideMargin_2)+"}{";
+ tmp=tmp+text(100-SlideMargin_2)+"}";
+ ); // 180903,180908to
+ println(SCEOUTPUT,"");
println(SCEOUTPUT,tmp);
+ println(SCEOUTPUT,"");
println(SCEOUTPUT,"\ketslideinit");
println(SCEOUTPUT,"");
forall(tmp, // 15.07.21
@@ -4571,10 +4845,12 @@ Presentation(texfile,txtfile):=(
paradt_4=substring(paradt_4,0,tmp0-1);
);//17.01.29until
parafiles=select(parafiles,indexof(#,".tex")>0);
+ parafiles=sort(parafiles); //180627
if(indexof(paradt_4,"\input")==0,paradt_4="\"+paradt_4);//16.12.17
);
if(indexof(paradt_4,"include")>0,
parafiles=select(parafiles,indexof(#,".pdf")>0);
+ parafiles=sort(parafiles); //180627
);
npara=length(parafiles);
,
@@ -4930,7 +5206,9 @@ Presentation(texfile,txtfile):=(
println(SCEOUTPUT,"\end{document}");
closefile(SCEOUTPUT);
);
+////%Presentation end////
+////%Mkslides start////
Mkslides():=(
regional(sep,parent,texparentorg,tmp,tmp1,tmp2,tmp3,tmp4,flg);
tmp4=Fhead;
@@ -4994,7 +5272,9 @@ Mkslides():=(
Fhead=tmp4;
Texparent=texparentorg;//17.04.10
);
+////%Mkslides end////
+////%Mkslidesummary start////
Mkslidesummary():=( // 17.10.26 for R
regional(texparentorg);
texparentorg=Texparent;
@@ -5059,7 +5339,9 @@ Mkslidesummary(inputfile,outputfile,options):=(
kc();
Changework(dirworkorg);//17.04.10
);
+////%Mkslidesummary end////
+////%Example start////
Example(exorg):=Example(exorg,"");
Example(exorg,suborg):=(
//help:Example("Mxfun","diff");
@@ -5085,7 +5367,9 @@ Example(exorg,suborg):=(
);
);
);
+////%Example end////
+////%BBdata start////
BBdata():=Bbdata(BBTarget,0);
BBdata(fname):=Bbdata(fname,0); // 16.04.09
BBdata(fname,optionorg):=(
@@ -5226,6 +5510,7 @@ BBdata(fname,optionorg):=(
// setdirectory(Dirwork);
tmp2; // 16.04.25
);
+////%BBdata end////
//help:end();
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvhelpE.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvhelpE.txt
index 9a7edb2e99f..a5e5e8fc693 100755
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvhelpE.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvhelpE.txt
@@ -1,4 +1,2 @@
//help:start();
-//help:Moviedata*(generate movie/para data);
-//help:Paraamble*(Define preamble and postamble);
//help:end();
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvhelpJ.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvhelpJ.txt
index 354d6596a77..a5e5e8fc693 100755
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvhelpJ.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvhelpJ.txt
@@ -1,4 +1,2 @@
//help:start();
-//help:Moviedata*(movieデータを定義
-//オプション : "Cut=1秒のコマ数(20)", "Div=全体のコマ数(80)");
//help:end();
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt
index e79262aa42c..3b86853918f 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvlogr.txt
@@ -1,3 +1,12 @@
+// 20180711
+// Setpara changed ("Mag" removed )
+// 20180617
+// Setpara changed (Changework removed)
+// Parafolder debugged/changed ( fbkup, some of Changework removed)
+// Parafolder changed (time added )
+// Animatefiles,Mkflipfiles debugged ( sorting of tex files )
+// 20180615
+// Setpara changed (GLISTbkup)
// 20180614
// Setpara changed (ReadOutData&Projpara removed fromGLISTbkup)
// Setpara changed (the above also removed from COM2ndlist)
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs
index e2d256595ef..96e79b3f532 100755
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylibmvr.cs
@@ -14,7 +14,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindymv(20180615) loaded");
+println("ketcindymv(20180711) loaded");
//help:start();
@@ -24,11 +24,12 @@ Setpara(pathorg,fstr,sL,options):=
Setpara(pathorg,fstr,sL,options,optionsanim):=(
//help:Setpara("folder name","funstr","range",options,optionsanim);
//help:Setpara(folder,funstr,range,options);
-//help:Setpara(options=["m/r","Div=25"]);
+//help:Setpara(options=["Div=25"]);
//help:Setpara(options2anim1=["Frate=10","Scale=1"]);
//help:Setpara(options2anim2=["OpA=[loop,controls,buttonsize=3mm]"]);
//help:Setpara(options2anim3=["OpA=+step"]);
-//help:Setpara(options2anim4=["Mag=1600","Title=folder"]);
+//help :Setpara(options2anim4=["Mag=1600","Title=folder"]);
+//help:Setpara(options2anim4=["Title=folder"]);
regional(path,tmp,tmp1,tmp2,tmp3,eqL,ndiv,gtmp,ctmp,nn,flg);
if(length(pathorg)==0, path=Slidename,path=pathorg);//17.04.10
ParaPath=path;
@@ -66,15 +67,12 @@ Setpara(pathorg,fstr,sL,options,optionsanim):=(
COM2ndlistback=COM2ndlist;
Dirworkbkup=Dirwork; //0611from
Dirworksubbkup=Dirwork+pathsep()+ParaPath;
- Changework(Dirworksubbkup);
- Changework(Dirworkbkup);
Fheadbkup=Fhead; //0611to
gtmp=GLISTback;
tmp1=select(1..(length(gtmp)),indexof(gtmp_#,"ReadOutData")>0); //180614from
tmp2=[];tmp3=[];
if(length(tmp1)>0, //180615
nn=tmp1_(length(tmp1));
-// forall(tmp1,nn,
tmp2=append(tmp2,nn);
flg=0;
tmp=min([nn+40,length(gtmp)]);
@@ -112,9 +110,7 @@ Parafolder(fstr,sL,optionorg):=(
//help:Paraslide(para=folder:layery:pos:input,scale);
//help:Paraslide(para=folder:layery:pos:include:[width=100]);
regional(nn,tmp,tmp1,tmp2,strL,eqL,waiting,outflg,pause,
- mkr,mktex,options,sfL,dirbkup,fbkup,pfile,ctr,flg,varL);
- Changework(Dirworkbkup);
- Setfiles(Fheadbkup);
+ mkr,mktex,options,sfL,dirbkup,pfile,ctr,flg,varL,waitingR,timeC,timeR);
tmp=indexof(fstr,"(");
tmp1=substring(fstr,tmp,length(fstr));
tmp=indexof(tmp1,")");
@@ -127,7 +123,7 @@ Parafolder(fstr,sL,optionorg):=(
if(length(strL)==0,options=append(options,"m"));
mkr="A";
mktex="A";
- waiting=20;
+ waiting=30;
outflg=0;
pause=10;
forall(eqL,
@@ -153,10 +149,12 @@ Parafolder(fstr,sL,optionorg):=(
mkr="Y"; mktex="Y";
);
);
+ waitingR=min([length(sL)*waiting,120]);//180617
Changework(Dirworksubbkup);
SCEOUTPUT = openfile("all.r");
println(SCEOUTPUT,"");
closefile(SCEOUTPUT);//180608to
+ resetclock();//180617
if(outflg==1, //180606from
CommonMake=1;//180609
ctr=1;
@@ -164,21 +162,17 @@ Parafolder(fstr,sL,optionorg):=(
tmp="000000"+text(ctr);
pfile="p"+substring(tmp,length(tmp)-3,length(tmp));
Setfiles(pfile);
- Changework(Dirworksubbkup);
Movieframe(#);
- Changework(Dirworksubbkup);//180608
ctr=ctr+1;
);
CommonMake=-1;//180609
- Setfiles(fbkup);
+ Setfiles(Fheadbkup);//180617
+ timeC=seconds();//180617
); //180606to
wait(pause); //180610
-// Changework(Dirworkbkup);
sfL=[];
ctr=1;
forall(1..(length(sL)),nn,
- Changework(Dirworkbkup);//180611(2lines)
- Setfiles(Fheadbkup);
GLIST=GLISTback;
GCLIST=GCLISTback;
GOUTLIST=GOUTLISTback;
@@ -191,18 +185,17 @@ Parafolder(fstr,sL,optionorg):=(
COM2ndlist=COM2ndlistback;
tmp="000000"+text(nn);
pfile="p"+substring(tmp,length(tmp)-3,length(tmp));
- Setfiles(pfile);
Changework(Dirworksubbkup);
+ Setfiles(pfile);
sfL=append(sfL,FnameR);
if(outflg==1,
- Changework(Dirworksubbkup);//180606
- Setfiles(pfile); //180610(2lines)
wait(pause);
Movieframe(sL_nn);
Changework(Dirworksubbkup);//180606
ctr=ctr+1;
,
Movieframe(sL_nn);
+ timeC=seconds();//180617
);
CommonMake=0;//180609
Setfiles(pfile); //180608
@@ -213,8 +206,7 @@ Parafolder(fstr,sL,optionorg):=(
);
);
wait(pause); //180610
- Setfiles(fkbkup);
- Changework(Dirworksubbkup);
+ Setfiles(Fheadbkup);
GLIST=select(GLIST,indexof(#,"Projpara")==0);
tmp1=replace(Dirworksubbkup,"\\","/"); //180611
tmp1=replace(tmp1,"\","/");
@@ -250,7 +242,7 @@ Parafolder(fstr,sL,optionorg):=(
if(ErrFlag!=-1,
waiting=min([waiting,8])*length(ParaSL); //180610
if(!isexists(Dirworksubbkup,Fnametex) % mktex=="Y",
- CalcbyR("",cmdL,["Cat=n","m","Wait="+text(waiting)]);
+ CalcbyR("",cmdL,["Cat=n","m","Wait="+text(waitingR)]);
,
println("Parafolder finished");
);
@@ -258,6 +250,12 @@ Parafolder(fstr,sL,optionorg):=(
parse(after);
);
);
+ if(ErrFlag!=-1,//180617from
+ timeR=seconds()-timeC;
+ println("C and R finished");
+ println(" C : "+Sprintf(timeC,2)+" sec");
+ println(" R : "+Sprintf(timeR,2)+" sec");
+ ); //180617to
Changework(Dirworkbkup);
Setfiles(Fheadbkup);
);
@@ -304,6 +302,7 @@ Animatefile(path,folder):=(
tmp1=fileslist(tmp);
tmp1=tokenize(tmp1,",");
tmp1=select(tmp1,indexof(#,".tex")>0);
+ tmp1=sort(tmp1); //180617
texfiles=[];//180609from
forall(tmp1,
tmp=indexof(#,".");
@@ -580,6 +579,7 @@ Mkflipanime(path,folder):=(
tmp=fileslist(Dirwork+pathsep()+folder);
tmp=tokenize(tmp,",");
tmp1=select(tmp,indexof(#,".tex")>0); //180609from
+ tmp1=sort(tmp1);//180617
texfiles=[];
forall(tmp1,
tmp=indexof(#,".");
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt
index 9c96a1c1f82..aa7eb97c1e9 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutlogr.txt
@@ -1,3 +1,26 @@
+// 20181029
+// in ReadOutData C callings, option=["Disp=n"] added
+// 20181020
+// HatchdataR,Dotfilldata (Setscaling(SCALEX,SCALEY)
+// 20181014
+// Rulerscale changed (mag added to "r" )
+// 20181013
+// Scatterplot debugged and changed ( Readcsv, for case of data list, option "m/r")
+// Scatterplot changed (optionspt, optionsseg)
+// Scatterplot changed (position addede to optionsseg)
+// 20180906
+// Setobj debugged (objname removed)
+// 20180902
+// Setobj changed (null argument)
+// Mkviewobj changed (Cat=n)
+// 20180727
+// Wireparadata, Sfcutparadata debugged ("char fname..." removed)
+// 20180722
+// PlotdataR,Boxplot,Rulersclale changed (color option)
+// 20180712
+// SfbdparadataC,... renamed to Sfbdparadata,...
+// 20180617
+// CalcbyC debugged ( println removed)
// 20180615
// CalcbyC debugged ( flg block changed)
// kcC changed ( 1000 =>10000)
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs
index 5fbe676f93e..8f6a399f617 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindyliboutr.cs
@@ -14,7 +14,7 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindylibout(20180612 loaded");
+println("ketcindylibout(20181029 loaded");
//help:start();
@@ -1296,6 +1296,7 @@ Writecsv(nmL,dataorg,file,optionorg):=(
closefile(SCEOUTPUT);
);
+////%HatchdataR start////
HatchdataR(nm,iostr,pltlist):=HatchdataR(nm,iostr,pltlist,[]);
HatchdataR(nm,iostr,pltlist,optionorg):=( //17.09.18
//help:HatchdataR("1","ii",[["gr1"],["gr2","n"]]);
@@ -1359,7 +1360,7 @@ HatchdataR(nm,iostr,pltlist,optionorg):=( //17.09.18
tmp=[tmp1,tmp2];
tmp=concat(tmp,reL);
cmdL=concat(cmdL,[
- "Setscaling",[SCALEY],
+ "Setscaling",[SCALEX,SCALEY], //181020
"Setunitlen",[Dq+ULEN+Dq],
name+"=Hatchdata",tmp, //16.12.23
"WriteOutData",[Dq+fname+Dq,Dq+name+Dq,name]
@@ -1380,7 +1381,9 @@ HatchdataR(nm,iostr,pltlist,optionorg):=( //17.09.18
);
);
);
+////%HatchdataR end////
+////%PlotdataR start////
PlotdataR(name1,func,var):=PlotdataR(name1,PathR,func,var);
PlotdataR(name1,Arg1,Arg2,Arg3):=(
if(islist(Arg3),
@@ -1454,6 +1457,7 @@ PlotdataR(name1,path,func,variable,optionorg):=(
tmp2;
);
);
+////%PlotdataR end////
PlotdiscR(nm,fun,varrng):=PlotdiscR(nm,fun,varrng,[]);
PlotdiscR(nm,fun,varrng,options):=(
@@ -1609,34 +1613,34 @@ Boxplot(nm,dataorg,ypos,dy,optionorg):=(
pstr="[";
tmp1=[bp_1,ypos-dy/2];
tmp2=[bp_1,ypos+dy/2];
- Listplot(name+text(1),[tmp1,tmp2],["Msg=no"]);
+ Listplot(name+text(1),[tmp1,tmp2],concat(options,["Msg=no"]));
pstr=pstr+Dq+"sg"+name+text(1)+Dq+",";
tmp1=[bp_2,ypos-dy];
tmp2=[bp_2,ypos+dy];
tmp3=[bp_4,ypos+dy];
tmp4=[bp_4,ypos-dy];
- Listplot(name+text(2),[tmp1,tmp2,tmp3,tmp4,tmp1],["Msg=no"]);
+ Listplot(name+text(2),[tmp1,tmp2,tmp3,tmp4,tmp1],append(options,"Msg=no"));
pstr=pstr+Dq+"sg"+name+text(2)+Dq+",";
tmp1=[bp_5,ypos-dy/2];
tmp2=[bp_5,ypos+dy/2];
- Listplot(name+text(3),[tmp1,tmp2],["Msg=no"]);
+ Listplot(name+text(3),[tmp1,tmp2],append(options,"Msg=no"));
pstr=pstr+Dq+"sg"+name+text(3)+Dq+",";
tmp1=[bp_3,ypos-dy];
tmp2=[bp_3,ypos+dy];
- Listplot(name+text(4),[tmp1,tmp2],["dr,2","Msg=no"]);
+ Listplot(name+text(4),[tmp1,tmp2],concat(options,["dr,2","Msg=no"]));
pstr=pstr+Dq+"sg"+name+text(4)+Dq+",";
tmp1=[bp_1,ypos];
tmp2=[bp_2,ypos];
- Listplot(name+text(5),[tmp1,tmp2],["da","Msg=no"]);
+ Listplot(name+text(5),[tmp1,tmp2],concat(options,["da","Msg=no"]));
pstr=pstr+Dq+"sg"+name+text(5)+Dq+",";
tmp1=[bp_4,ypos];
tmp2=[bp_5,ypos];
- Listplot(name+text(6),[tmp1,tmp2],["da","Msg=no"]);
+ Listplot(name+text(6),[tmp1,tmp2],concat(options,["da","Msg=no"]));
pstr=pstr+Dq+"sg"+name+text(6)+Dq+",";
out=bp_(6..length(bp));
if(length(out)>0,
out=apply(out,[#,ypos]);
- Pointdata(name+text(1),out,[0,"Size=4"]);
+ Pointdata(name+text(1),out,concat(options,[0,"Size=4"]));
);
pstr=substring(pstr,0,length(pstr)-1)+"]";
println("generate totally "+name);
@@ -1824,43 +1828,53 @@ Histplot(nm,dataorg,optionorg):=(
);
);
-Scatterplot(nm,file):=Scatterplot(nm,file,[]);
-Scatterplot(nm,file,optionorg):=(
-//help:Scatterplot("1",path+filename);
-//help:Scatterplot(options=["Reg=yes",A,B,C,"Size"=4"]);
- regional(tmp,tmp1,tmp2,fname,name,reg,eqL,reL,cdysize,
- options,dtx,dty,nn,mx,my,sx,sy,sxy,rr,aa,bb,size);
+////%Scatterplot start////
+Scatterplot(nm,file):=Scatterplot(nm,file,[],[]);
+Scatterplot(nm,file,options):=Scatterplot(nm,file,options,[]);
+Scatterplot(nm,file,optionorg,optionsreg):=(
+//help:Scatterplot("1",(path+)filename);
+//help:Scatterplot("2",ptlist,["Size=2"],["da","Color=blue"]);
+//help:Scatterplot("3",ptlist,["Reg=n"]);
+//help:Scatterplot(options=["Reg=n","Size=3","Color="]);
+//help:Scatterplot(options1=["Reg=y(n)",pointstyle]);
+//help:Scatterplot(options2=[position([]), linestyle]);
+ regional(tmp,tmp1,tmp2,fname,name,reg,eqL,strL,cdysize,
+ options,dtx,dty,nn,mx,my,sx,sy,sxy,rr,aa,bb,size,pos);
name="sc"+nm;
options=optionorg;
tmp=divoptions(options);
eqL=tmp_5;
- reL=tmp_6;
- options=remove(options,reL);
- cdysize=select(options,indexof(#,"size->")>0);
- options=remove(options,cdysize);
- size=4;
- reg="yes";
+ options=remove(options,tmp_6);
+ strL=tmp_7; //181013(2lines)
+ options=remove(options,strL);
+ size=3;
+ reg="y";
forall(eqL,
tmp=indexof(#,"=");
tmp1=Toupper(substring(#,0,1));
tmp2=substring(#,tmp,length(#));
if(tmp1=="R",
- reg=tmp2;
+ reg=substring(tmp2,0,1);
options=remove(options,[#]);
);
if(tmp1=="S",
size=parse(tmp2);
options=remove(options,[#]);
+ options=append(options,"Size="+text(size));//181013
);
);
- if(indexof(file,".")==0,
- fname=file+".csv";
+ if(isstring(file), //181013
+ if(indexof(file,".")==0,
+ fname=file+".csv";
+ ,
+ fname=file;
+ );
+ tmp=Readcsv(fname,strL);//181013from
,
- fname=file;
+ tmp=file;
);
- Readcsv(nm,fname);
- tmp=concat(options,cdysize);
- Pointdata(name,parse("rc"+nm),append(tmp,"Size="+text(size)));
+ parse("rc"+nm+"="+tmp); //181013to
+ Pointdata(name,parse("rc"+nm),options);
tmp=parse("rc"+nm);
dtx=apply(tmp,#_1);
dty=apply(tmp,#_2);
@@ -1873,29 +1887,44 @@ Scatterplot(nm,file,optionorg):=(
rr=sxy/sx/sy;
aa=sxy/sx^2;
bb=my-aa*mx;
+ tmp1=optionsreg;
+ tmp=divoptions(tmp1);
+ reL=tmp_6; //181013(2lines)
+ tmp1=remove(tmp1,reL);
+ tmp1=append(tmp1,"Num=1");
+ pos=[];
+ if(length(reL)>0,
+ pos=reL_1;
+ );
tmp=Assign("a*x+b",["a",aa,"b",bb]);
- if(reg!="no",
- Plotdata(name,tmp,"x",append(options,"Num=2"));
+ if(reg!="n",
+ Plotdata(name,tmp,"x",tmp1);
);
- if(length(reL)>=2,
- Framedata2(name,[reL_1,reL_2]);
- if(length(reL)>2,
- tmp="r="+textformat(rr,3)+",\ y=";
- tmp=tmp+textformat(aa,3)+"x";
- if(bb>0,tmp=tmp+"+",tmp=tmp+"-");
- tmp=tmp+textformat(abs(bb),3);
- Expr([reL_3,"e",tmp]);
- );
+ if(length(pos)>0, //181013from
+ tmp="r="+textformat(rr,3)+",\ y=";
+ tmp=tmp+textformat(aa,3)+"x";
+ if(bb>0,tmp=tmp+"+",tmp=tmp+"-");
+ tmp=tmp+textformat(abs(bb),3);
+ Expr([pos,"e",tmp]); //181013to
);
[mx,my,sx,sy,sxy,rr,bb,aa];
);
+////%Scatterplot end////
-Rulerscale(pt,hscale,vscale):=Rulerscale(pt,hscale,vscale,0.1);
-Rulerscale(pt,hscale,vscale,tick):=(
+////%Rulerscale start////
+Rulerscale(pt,hscale,vscale):=Rulerscale(pt,hscale,vscale,0.1,[]);//180722from
+Rulerscale(Arg1,Arg2,Arg3,Arg4):=(
+ if(!islist(Arg4),
+ Rulerscale(Arg1,Arg2,Arg3,Arg4,[]);
+ ,
+ Rulerscale(Arg1,Arg2,Arg3,0.2,Arg4);
+ );
+);//180722to
+Rulerscale(pt,hscale,vscale,tick,options):=(//180722
//help:Rulerscale(A,["r",0,5,1],["s2",0,2,4]);
//help:Rulerscale(A,["r",0,5,1],["f",10,"a",20,"w2","b"]);
//help:Rulerscale(A,["r",0,5,1],["r",0,10,1],0.2);
- regional(pA,pos,mrk,dir,tmp,tmp1,tmp2,tmp3);
+ regional(pA,pos,mrk,dir,mag,tmp,tmp1,tmp2,tmp3);
pA=Lcrd(pt);
if(length(hscale)>0,
pos=[]; mrk=[]; dir=[];
@@ -1906,9 +1935,10 @@ Rulerscale(pt,hscale,vscale,tick):=(
tmp1=hscale_2;
tmp2=hscale_3;
tmp3=hscale_4;
+ if(length(hscale)>4,mag=hscale_5,mag=1); //181014
tmp=floor((tmp2-tmp1)/tmp3);
- pos=apply(0..tmp,tmp1+#*tmp3);
- mrk=apply(pos,text(#));
+ pos=apply(0..tmp,tmp1+#*tmp3);//181014
+ mrk=apply(pos,text(#*mag));
dir=apply(1..length(pos),"s2");
,
forall(2..(length(hscale)-2),
@@ -1939,10 +1969,10 @@ Rulerscale(pt,hscale,vscale,tick):=(
);
pos=apply(pos,[#,pA_2]);
forall(1..length(pos),
- Expr([pos_#,dir_#,mrk_#]);
+ Expr([pos_#,dir_#,mrk_#],options);
tmp1=pos_#;
- tmp2=pos_#-[0,tick/SCALEY];
- Listplot("rsh"+text(#),[tmp1,tmp2],["Msg=no"]);
+ tmp2=pos_#-Unscaling([0,tick]); //181017
+ Listplot("rsh"+text(#),[tmp1,tmp2],concat(options,["Msg=no"]));
);
);
if(length(vscale)>0,
@@ -1954,9 +1984,10 @@ Rulerscale(pt,hscale,vscale,tick):=(
tmp1=vscale_2;
tmp2=vscale_3;
tmp3=vscale_4;
+ if(length(vscale)>4,mag=vscale_5,mag=1); //181014
tmp=floor((tmp2-tmp1)/tmp3);
pos=apply(0..tmp,tmp1+#*tmp3);
- mrk=apply(pos,text(#));
+ mrk=apply(pos,text(#*mag)); //181014
dir=apply(1..length(pos),"w2");
,
forall(2..(length(vscale)-2),
@@ -1987,13 +2018,14 @@ Rulerscale(pt,hscale,vscale,tick):=(
);
pos=apply(pos,[pA_1,#]);
forall(1..length(pos),
- Expr([pos_#,dir_#,mrk_#]);
+ Expr([pos_#,dir_#,mrk_#],options);
tmp1=pos_#;
- tmp2=pos_#-[tick/SCALEX,0];
- Listplot("rsv"+text(#),[tmp1,tmp2],["Msg=no"]);
+ tmp2=pos_#-Unscaling([tick,0]); //181017
+ Listplot("rsv"+text(#),[tmp1,tmp2],concat(options,["Msg=no"]));
);
);
);
+////%Rulerscale end////
MkprecommandS():=MkprecommandS(6);
MkprecommandS(prec):=(
@@ -2244,7 +2276,7 @@ Dotfilldata(nm,iostr,pltlist,optionorg):=(
tmp=[tmp1,tmp2];
tmp=concat(tmp,dense);
cmdL=concat(cmdL,[
- "Setscaling",[SCALEY],
+ "Setscaling",[SCALEX,SCALEY], //181020
"Setunitlen",[Dq+ULEN+Dq],
name+"=Dotfilldata",tmp,
"WriteOutData",[Dq+fname+Dq,Dq+name+Dq,name],
@@ -3537,15 +3569,15 @@ Mkviewobj(pathorg,fnameorg,cmdLorg,optionorg):=(
cmdlist=MkprecommandR();
cmdlist=concat(cmdlist,["Openobj",[Dq+path+fname+Dq]]);
cmdlist=concat(cmdlist,cmdL);
- tmp=["Closeobj()",[],"ans="+Dq+"||||"+Dq,[]];//16.12.26
+ tmp=["Closeobj()",[],""+Dq+"||||"+Dq,[]];//16.12.26
cmdlist=concat(cmdlist,tmp);
tmp=append(options,"Cat=y");
tmp1=apply(tmp,Toupper(substring(#,0,1))); // 16.04.23from
tmp1=select(tmp1,#=="W");
if(length(tmp1)==0,
tmp=append(tmp,"Wait=5");
- );// 16.04.23until
- CalcbyR("ans",cmdlist,tmp);
+ );// 16.04.23to
+ CalcbyR("",cmdlist,tmp); //180902
wait(WaitUnit*100); // 16.03.18
,
vtx=cmdL_1;
@@ -3587,14 +3619,20 @@ Mkviewobj(pathorg,fnameorg,cmdLorg,optionorg):=(
);
);
-SetObj(str):=Objname(str,["m","v"]); //17.01.12
-SetObj(str,options):=Objname(str,options); //17.01.12
-Objnameoptions(str,options):=Objname(str,options);// 16.11.29
-Objname(str):=Objname(str,["m","v"]); // 16.11.29
-Objname(str,optionsorg):=(
-//help:Objname("sample");
-//help:Objname(options=["m","v"]);
+//Objname(str):=Objname(str,["m","v"]); //180906from
+//Objname(str,options):=Setobj(str,options);
+Setobj():=Setobj(Fhead,["m","v"]); //180901
+Setobj(Arg1):=(
+ if(isstring(Arg1),
+ Setobj(Arg1,["m","v"]); //17.01.12
+ ,
+ Setobj(Fhead,Arg1); //180902
+ );
+);
+Setobj(str,optionsorg):=( //180906to
+//help:Setobj(["m","v"]);
//help:Setobj("sample");
+//help:Setobj("sample",options);
//help:Setobj(options=["m","v"]);
regional(options);
if(length(str)>0,
@@ -3606,7 +3644,7 @@ Objname(str,optionsorg):=(
,
OCOPTION=["m","v"];
); //17.12.23until
- println([OCNAME,OCOPTION]);
+ println("generate OBJCMD. name="+OCNAME+", option="+OCOPTION);
);
Mkobjcmd(nm,fd):=Mkobjcmd(nm,fd,[40,40,"+"]);
@@ -4204,7 +4242,7 @@ Mkobjsymbcmd(path,symborg,size,rot,dir,pos,optionorg):=(
tmp2=append(tmp2,tmp);
);
parse("oc"+symborg+"="+tmp2);
- println("cmd seq oc"+symborg+" generated"); // 16.06.10until
+// println("cmd seq oc"+symborg+" generated"); // 16.06.10until
OBJCMD=concat(OBJCMD,out);//16.11.29
out;
);
@@ -4820,6 +4858,9 @@ ConvertFdtoC(Fd,name):=(
FdC=concat(FdC,[tmp1_6]);
);
+Startsurf():=StartsurfC();
+Startsurf(Arg):=StartsurfC(Arg);
+Startsurf(restr,Nplist,Dsizelist,Epslist):=StartsurfC(restr,Nplist,Dsizelist,Epslist);
StartsurfC():=StartsurfC("",[50,50],[1500,500,200],[0.01,0.1]);//180611renewed
StartsurfC(Arg):=(
regional(tmp);
@@ -4839,11 +4880,11 @@ StartsurfC(Arg):=(
);
);
StartsurfC(restr,Nplist,Dsizelist,Epslist):=(//180501
-//help:StartsurfC();
-//help:StartsurfC("reset");
-//help::StartsurfC([0.01,0.1]);
-//help:StartsurfC([50,50],[1500,500,200],[0.01,0.1]);
-//help:StartsurfC([50],[1500,500],[0.01,0.1]);
+//help:Startsurf();
+//help:Startsurf("reset");
+//help::Startsurf([0.01,0.1]);
+//help:Startsurf([50,50],[1500,500,200],[0.01,0.1]);
+//help:Startsurf([50],[1500,500],[0.01,0.1]);
regional(divL,sizeL,epsL);
CommandListC=[];//180608(2lines)
FuncListC=[];
@@ -5721,8 +5762,6 @@ CalcbyC(name,path,cmd,optionorg):=(
waiting=40;
wfile=Fhead+name+"end.txt"; //180517
hfile=Fhead+name+"header.h";
- println(Dirwork);
- println(hfile);
mfile=Fhead+name+".c";
wflg=0;
forall(eqL,
@@ -5815,7 +5854,9 @@ CalcbyC(name,path,cmd,optionorg):=(
ExeccmdC(nm):=ExeccmdC(nm,[],["do"]); //180531
ExeccmdC(nm,options):=ExeccmdC(nm,options,["do"]);
ExeccmdC(nm,optionorg,optionhorg):=(
-//help:ExeccmdC("1",["m/r","Wait=30"],["do"]);
+//help:ExeccmdC("1",options1,options2);
+//help:ExeccmdC(options1=["dr(/da/do)","m/r","Wait=30"]);
+//help:ExeccmdC(options2=["do(/nodisp/da/do)"]);
regional(options,optionsh,name2,name3,waiting,dirbkup,
eqL,reL,strL,fname,tmp,tmp1,tmp2,flg,wflg,varL);
fname=Fhead+nm+".txt";
@@ -5861,6 +5902,7 @@ ExeccmdC(nm,optionorg,optionhorg):=(
if(wflg==1,tmp1=append(options,"m"));
if(wflg==-1,tmp1=append(options,"r"));
tmp1=append(tmp1,"Wait="+text(waiting));
+ tmp1=append(tmp1,"Disp=n"); //181024
CommandListC=prepend(" char fnameall[]="+Dqq(fname)+";",CommandListC);
CommandListC=prepend(" printf("+Dqq("%s\n")+","+Dqq(Fhead)+");",CommandListC); //180608
tmp=select(CommandListC,indexof(#,"outputend")>0);
@@ -5874,7 +5916,7 @@ ExeccmdC(nm,optionorg,optionhorg):=(
if(ErrFlag==1,
err("CommandListC is empty or execcmd is not completed");
,
- varL=ReadOutData(fname);
+ varL=ReadOutData(fname,["Disp=n"]); //181029
GLIST=append(GLIST,"ReadOutData("+Dqq(fname)+")");
tmp1=select(varL,indexof(#,"h3d")==0);
tmp2=remove(varL,tmp1);
@@ -5906,13 +5948,15 @@ ExeccmdC(nm,optionorg,optionhorg):=(
varL;
);
+Sfbdparadata(nm,fd):=SfbdparadataC(nm,fd);
+Sfbdparadata(nm,fd,options):=SfbdparadataC(nm,fd,options);
+Sfbdparadata(nm,fdorg,optionorg,optionsh):=SfbdparadataC(nm,fdorg,optionorg,optionsh);
SfbdparadataC(nm,fd):=
SfbdparadataC(nm,fd,[],["nodisp"]);
SfbdparadataC(nm,fd,options):=
SfbdparadataC(nm,fd,options,["nodisp"]);
SfbdparadataC(nm,fdorg,optionorg,optionsh):=(
-//help:SfbdparadataC("1",Fd);
-//help:SfbdparadataC(options2=["c(default)/r/m"]);
+//help:Sfbdparadata("1",Fd);
regional(funnm,fd,options,name2,name3,name2h,name3h,waiting,
eqL,reL,strL,fname,tmp,tmp1,tmp2,flg,wflg,cmdflg);
if(ChNumber==0,ChNumber=Ch);
@@ -5989,7 +6033,7 @@ SfbdparadataC(nm,fdorg,optionorg,optionsh):=(
if(ErrFlag==1,
err("Sfbdparadata not completed");
,
- ReadOutData(fname);
+ ReadOutData(fname,["Disp=n"]); //181029
GLIST=append(GLIST,"ReadOutData("+Dqq(fname)+")");
if(islist(parse(name3)),
tmp1=name2+"=Projpara("+Dqq(name3)+",[";
@@ -6017,14 +6061,16 @@ SfbdparadataC(nm,fdorg,optionorg,optionsh):=(
);
);
+Crvsfparadata(nm,fk,sfbd,fd):=CrvsfparadataC(nm,fk,sfbd,fd);
+Crvsfparadata(nm,fk,sfbd,fd,options):=CrvsfparadataC(nm,fk,sfbd,fd,options);
+Crvsfparadata(nm,Fk,sfbdorg,fdorg,optionorg,optionsh):=
+ CrvsfparadataC(nm,Fk,sfbdorg,fdorg,optionorg,optionsh);
CrvsfparadataC(nm,fk,sfbd,fd):=
CrvsfparadataC(nm,fk,sfbd,fd,[],["nodisp"]);
CrvsfparadataC(nm,fk,sfbd,fd,options):=
- SfbdparadataC(nm,fk,sfbd,fd,options,["nodisp"]);
+ CrvsfparadataC(nm,fk,sfbd,fd,options,["nodisp"]);
CrvsfparadataC(nm,Fk,sfbdorg,fdorg,optionorg,optionsh):=(
-//help:CrvsfparadataC("1","ax3d","sfbd3d1",Fd);
-//help:CrvsfparadataC(options2=["c(default)/r/m"]);
-//help:CrvsfparadataC(optionsh=["nodisp"]);
+//help:Crvsfparadata("1","ax3d","sfbd3d1",Fd);
regional(funnm,sfbd,fd,options,name2,name3,name2h,name3h,waiting,
eqL,reL,strL,fname,tmp,tmp1,tmp2,flg,wflg,flg,ii,jj,eps,cmdlfg);
eps=10^(-5);
@@ -6117,7 +6163,7 @@ CrvsfparadataC(nm,Fk,sfbdorg,fdorg,optionorg,optionsh):=(
if(ErrFlag==1,
err("Crvsfparadata not completed");
,
- ReadOutData(fname);
+ ReadOutData(fname,["Disp=n"]); //181029
GLIST=append(GLIST,"ReadOutData("+Dqq(fname)+")");
if(islist(parse(name3)),
tmp1=name2+"=Projpara("+Dqq(name3)+",[";
@@ -6145,12 +6191,16 @@ CrvsfparadataC(nm,Fk,sfbdorg,fdorg,optionorg,optionsh):=(
);
);
+Crv3onsfparadata(nm,crv3d,sfbd,fd):=Crv3onsfparadataC(nm,crv3d,sfbd,fd);
+Crv3onsfparadata(nm,crv3d,sfbd,fd,options):=Crv3onsfparadataC(nm,crv3d,sfbd,fd,options);
+Crv3onsfparadata(nm,crv3d,sfbdorg,fdorg,optionorg,optionsh):=
+ Crv3onsfparadataC(nm,crv3d,sfbdorg,fdorg,optionorg,optionsh);
Crv3onsfparadataC(nm,crv3d,sfbd,fd):=
Crv3onsfparadataC(nm,crv3d,sfbd,fd,[],["nodisp"]);
Crv3onsfparadataC(nm,crv3d,sfbd,fd,options):=
Crv3onsfparadataC(nm,crv3d,sfbd,fd,options,["nodisp"]);
Crv3onsfparadataC(nm,crv3d,sfbdorg,fdorg,optionorg,optionsh):=(
-//help:Crv3onsfparadataC("1","sc3","sfbd3d1",fd);
+//help:Crv3onsfparadata("1","sc3","sfbd3d1",fd);
regional(funnm,sfbd,fd,options,name3,name3h,name2,name2h,waiting,
eqL,reL,strL,fname,tmp,tmp1,tmp2,flg,wflg,flg,ii,jj,eps,cmdflg);
tmp1=replace(crv3d,"3d","2d");
@@ -6249,7 +6299,7 @@ Crv3onsfparadataC(nm,crv3d,sfbdorg,fdorg,optionorg,optionsh):=(
if(ErrFlag==1,
err("Crvonsfparadata not completed");
,
- ReadOutData(fname);
+ ReadOutData(fname,["Disp=n"]);
GLIST=append(GLIST,"ReadOutData("+Dqq(fname)+")");
if(islist(parse(name3)),
tmp1=name2+"=Projpara("+Dqq(name3)+",[";
@@ -6277,12 +6327,16 @@ Crv3onsfparadataC(nm,crv3d,sfbdorg,fdorg,optionorg,optionsh):=(
);
);
+Crv2onsfparadata(nm,crv2d,sfbd,fd):=Crv2onsfparadataC(nm,crv2d,sfbd,fd);
+Crv2onsfparadata(nm,crv2d,sfbd,fd,options):=Crv2onsfparadataC(nm,crv2d,sfbd,fd,options);
+Crv2onsfparadata(nm,crv2d,sfbd,fdorg,options,optionsh):=
+ Crv2onsfparadataC(nm,crv2d,sfbd,fdorg,options,optionsh);
Crv2onsfparadataC(nm,crv2d,sfbd,fd):=
Crv2onsfparadataC(nm,crv2d,sfbd,fd,["c"],["do"]);
Crv2onsfparadataC(nm,crv2d,sfbd,fd,options):=
Crv2onsfparadataC(nm,crv2d,sfbd,fd,options,["do"]);
Crv2onsfparadataC(nm,crv2d,sfbd,fdorg,options,optionsh):=(
-//help:Crv2onsfparadataC("1","gp1","sfbd3d1",fd);
+//help:Crv2onsfparadata("1","gp1","sfbd3d1",fd);
regional(fd,uname,vname,str,tmpfun,ii,jj,crv3d,tmp,tmp1,tmp2);
Changestyle3d(crv2d,["nodisp"]);
crv3d=crv2d+"3d";
@@ -6304,12 +6358,16 @@ Crv2onsfparadataC(nm,crv2d,sfbd,fdorg,options,optionsh):=(
Crv3onsfparadataC(nm,crv3d,sfbd,fdorg,options,optionsh);
);
+Wireparadata(nm,sfbd,fd,wr1,wr2):=WireparadataC(nm,sfbd,fd,wr1,wr2);
+Wireparadata(nm,sfbd,fd,wr1,wr2,options):=WireparadataC(nm,sfbd,fd,wr1,wr2,options);
+Wireparadata(nm,sfbd,fdorg,wr1,wr2,optionorg,optionsh):=
+ WireparadataC(nm,sfbd,fdorg,wr1,wr2,optionorg,optionsh);
WireparadataC(nm,sfbd,fd,wr1,wr2):=
WireparadataC(nm,sfbd,fd,wr1,wr2,[],["nodisp"]);
WireparadataC(nm,sfbd,fd,wr1,wr2,options):=
WireparadataC(nm,sfbd,fd,wr1,wr2,options,["nodisp"]);
WireparadataC(nm,sfbd,fdorg,wr1,wr2,optionorg,optionsh):=(
-//help:WireparadataC("1","sfbd3d1",fd,5,5);
+//help:Wireparadata("1","sfbd3d1",fd,5,5);
regional(funnm,fd,options,name2,name3,name2h,name3h,waiting,
eqL,reL,strL,fname,fnameh,tmp,tmp1,tmp2,flg,wflg,flg,ii,jj,eps,udata,vdata,cmdflg);
eps=10^(-5);
@@ -6396,6 +6454,7 @@ WireparadataC(nm,sfbd,fdorg,wr1,wr2,optionorg,optionsh):=(
tmp=replace(tmp,"fname","fnameall"); cmdL_8=tmp;
cmdL_7=" readoutdata3(fnameall,"+Dqq(sfbd)+",sfbd);";
cmdL=append(cmdL," outputend(dirfname);");
+ cmdL=remove(cmdL,[cmdL_3,cmdL_4]); //180827
CommandListC=concat(CommandListC,cmdL); //180531to
,
if(wflg==1,tmp1=append(options,"m"));
@@ -6407,7 +6466,7 @@ WireparadataC(nm,sfbd,fdorg,wr1,wr2,optionorg,optionsh):=(
if(ErrFlag==1,
err("Wireparadata not completed");
,
- ReadOutData(fname);
+ ReadOutData(fname,["Disp=n"]);
GLIST=append(GLIST,"ReadOutData("+Dqq(fname)+")");
ReadOutData(fnameh);
GLIST=append(GLIST,"ReadOutData("+Dqq(fnameh)+")");
@@ -6437,6 +6496,10 @@ WireparadataC(nm,sfbd,fdorg,wr1,wr2,optionorg,optionsh):=(
);
);
+Intersectcrvsf(nm,crv,fd):=IntersectcrvsfC(nm,crv,fd);
+Intersectcrvsf(nm,crv,fd,Arg):=IntersectcrvsfC(nm,crv,fd,Arg);
+Intersectcrvsf(nm,crv3d,fdorg,bdyeq,optionorg):=
+ IntersectcrvsfC(nm,crv3d,fdorg,bdyeq,optionorg);
IntersectcrvsfC(nm,crv,fd):=IntersectcrvsfC(nm,crv,fd,"",[]);
IntersectcrvsfC(nm,crv,fd,Arg):=(
if(isstring(Arg),
@@ -6446,7 +6509,7 @@ IntersectcrvsfC(nm,crv,fd,Arg):=(
);
);
IntersectcrvsfC(nm,crv3d,fdorg,bdyeq,optionorg):=(
-//help:IntersectcrvsfC("1",curve,fd);
+//help:Intersectcrvsf("1",curve,fd);
regional(fd,funnm,name,crv,fd,options,reL,fname,crvfname,argR,
waiting,tmp,tmp1,tmp2,flg,wflg,pts,cmdflg);
fd=ConvertFdtoC(fdorg);
@@ -6527,20 +6590,24 @@ IntersectcrvsfC(nm,crv3d,fdorg,bdyeq,optionorg):=(
if(ErrFlag==1,
err("Intersectcrvsf not completed");
,
- ReadOutData(fname);
+ ReadOutData(fname,["Disp=n"]); //181029
);
println("generate "+name);
parse(name);
);
);
+Sfcutparadata(nm,cutfunL,sfbd,fd):=SfcutparadataC(nm,cutfunL,sfbd,fd);
+Sfcutparadata(nm,cutfunL,sfbd,fd,options):=SfcutparadataC(nm,cutfunL,sfbd,fd,options);
+Sfcutparadata(nm,cutfunLorg,sfbd,fdorg,optionorg,optionsh):=
+ SfcutparadataC(nm,cutfunLorg,sfbd,fdorg,optionorg,optionsh);
SfcutparadataC(nm,cutfunL,sfbd,fd):=(//180505
SfcutparadataC(nm,cutfunL,sfbd,fd,[],["nodisp"]);
);
SfcutparadataC(nm,cutfunL,sfbd,fd,options):=
SfcutparadataC(nm,cutfunL,sfbd,fd,options,["nodisp"]);
SfcutparadataC(nm,cutfunLorg,sfbd,fdorg,optionorg,optionsh):=(
-//help:SfcutparadataC("1","2*x+3*y+z=1","sfbd3d",fd);
+//help:Sfcutparadata("1","2*x+3*y+z=1","sfbd3d",fd);
regional(funnm,cutfunL,fd,options,name2,name3,name2h,name3h,waiting,
eqL,reL,strL,fname,fnameh,tmp,tmp1,tmp2,flg,wflg,flg,ii,jj,eps,cmdflg);
eps=10^(-5);
@@ -6608,6 +6675,7 @@ SfcutparadataC(nm,cutfunLorg,sfbd,fdorg,optionorg,optionsh):=(
tmp=replace(tmp,"fname","fnameall"); cmdL_6=tmp;
cmdL_5=" readoutdata3(fnameall,"+Dqq(sfbd)+",sfbd);";
cmdL=append(cmdL," outputend(dirfname);");
+ cmdL=remove(cmdL,[cmdL_1,cmdL_2]); //180827
CommandListC=concat(CommandListC,cmdL); //180531to
,
if(wflg==1,tmp1=append(options,"m"));
@@ -6619,7 +6687,7 @@ SfcutparadataC(nm,cutfunLorg,sfbd,fdorg,optionorg,optionsh):=(
if(ErrFlag==1,
err("Sfcutparadata not completed");
,
- ReadOutData(fname);
+ ReadOutData(fname,["Disp=n"]); //1810209
GLIST=append(GLIST,"ReadOutData("+Dqq(fname)+")");
ReadOutData(fnameh);
GLIST=append(GLIST,"ReadOutData("+Dqq(fnameh)+")");
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r b/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r
index 840f076cf8e..160710e857b 100755
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent.r
@@ -16,10 +16,54 @@
#########################################
-ThisVersion<- "KeTpic for R v5_2_4(20180615)"
+ThisVersion<- "KeTpic for R v5_2_4(20181024)"
print(ThisVersion)
+# 20181024
+# Wireparadata debugged ( for DuL(DvL)=c(..) )
+# Nohiddenpara2 debugged (for SeL=Null )
+# 20181020
+# Setscaling changed ( Setscaling(scalex,scaley) supported )
+# 20181019
+# Arrowhead changed(debugged) ( for basic1.cs )
+# 20181017
+# Drwxy debugged (Doscaling)
+# Arrowhead debugged (Unscaling removed)
+# Paramplot debugged (Assign(fun,var,"t"))
+# 20181015
+# Listplot debugged ( Unscaling implemented )
+# 20180929
+# Paramplot Plotdata, Spacecurve , Implicitplot changed
+# ( Dt,dx not divided by N)
+# Shade changed (Kyoukai => Joincrvs)
+# 20180928
+# Paramplot changed ( case of stationary point)
+# 20180901
+# Objcurve debugged ( Assign rewritten )
+# 20180820,21
+# Drwxy changed ( optional arguments added )
+# Setax changed (ARROWSIZE removed )
+# 20180812
+# Assign debugged ( case nchar(vname)>1)
+# 20180808
+# Scalept3pt changed (ratio)
+# 20180807
+# Reflect3pt,Reflect3data,Scale3pt,Scale3data added
+# 20180717
+# Hatchdata debugged (width option)
+# Enclosing debugged ( for closed curve )
+# 20180713
+# Enclosing2 debugged (for Lineplot: distance of pts added)
+# 20180711
+# Enclosing2 debugged (length => Length)
+# 20180707
+# Enclosing2 debugged (epspara)
+# 20180706
+# Enclosing2 debugged (crv => c)
+# Hatchdata changed ( Interval > *2 )
+# 20180621
+# Kyoukai debugged (1st point converted to matrix, length=>Length)
# 20180615
# Assign changed (Replace function added)
# 20180603
@@ -428,8 +472,8 @@ print(ThisVersion)
XMIN<- -5
XMAX<- 5
YMIN<- -5 ; YMAX<- 5
-ZIKU<- "line"
-ARROWSIZE<- 1
+ZIKU<- "l"
+#ARROWSIZE<- 1
XNAME<- "$x$"
XPOS<- "e"
YNAME<- "$y$"
@@ -475,8 +519,8 @@ Ketinit<- function(){
XMIN<<- -5
XMAX<<- 5
YMIN<<- -5 ; YMAX<<- 5
-ZIKU<<- "line"
-ARROWSIZE<<- 1
+ZIKU<<- "l"
+#ARROWSIZE<<- 1
XNAME<<- "$x$"
XPOS<<- "e"
YNAME<<- "$y$"
@@ -916,11 +960,12 @@ Arrowdata<- function(...)
######################################
+# 2018.10.19 for new basic1.cs
# 2013.11.13 No Intersect debugged
-Arrowhead<-function(...)
-{ ## Scaling is implemented
- ## 12.01.08 Kirikomi
+Arrowhead<-function(...){
+ ## Scaling is implemented
+  ## 12.01.08 Kirikomi
Eps=10^(-3)
varargin<-list(...)
Nargs<-length(varargin)
@@ -959,60 +1004,56 @@ Arrowhead<-function(...)
}
Ookisa<-1000/2.54/MilliIn*Ookisa
Theta<-Hiraki*pi/180
+ P<- Doscaling(P)
+ Houkou<- Doscaling(Houkou)
if(Nrow(Houkou)>1){
- P<- Doscaling(P)
- Houkou<- Doscaling(Houkou)
- Tmp<-Nearestpt(P,Houkou)
- A<-Tmp[[1]]
+ Tmp<-Nearestpt(P,Houkou) #181019 (2lines)
+ P<- Tmp[[1]]
I<-floor(Tmp[[2]])
if(I==1){# 180511
if(Norm(Ptend(Houkou)-Ptstart(Houkou))<Eps){
I=Numptcrv(Houkou)
}
}
- G<-Circledata(c(P,Ookisa*cos(Theta)),N=10) #17.11.29
+ G<-Circledata(c(P,Ookisa*cos(Theta)),"Num=10") #181019(2lines)
Flg<- 0 # 13.11.13
JL<-seq(I,1,by=-1)
for (J in JL){
- B<-Ptcrv(J,Houkou)
- Tmp<-IntersectcurvesPp(Listplot(list(A,B)),G) #180510
- if(length(Tmp)>0){
- Flg<- 1
- break
+ Tmp1=matrix(c(P,Op(J,Houkou)),ncol=2,byrow=TRUE) #181019
+# Tmp<-IntersectcurvesPp(Tmp1,G,0.001,0.01)
+ Tmp<-IntersectcrvsPp(Tmp1,G)
+ if(Length(Tmp)>0){
+ Houkou<-P-Op(1,Tmp[[1]])
+ Flg<- 1
+ break
}
- A<-B
}
if(Flg==0){ # 13.11.13
print("Arrowhead may be too large (no intersect)")
return(P)
}
- Houkou<-P-Op(1,Tmp[[1]])
- Houkou<- Unscaling(Houkou)
- P<- Unscaling(P)
}
- P<- Doscaling(P)
- Houkou<- Doscaling(Houkou)
Ev<--1/Norm(Houkou)*Houkou
Nv<-c(-Ev[2],Ev[1])
if(length(grep("c",Str))>0){
- P<-P-0.5*Ookisa*cos(Theta)*Ev
+ P<- P-0.5*Ookisa*cos(Theta)*Ev
}
if(length(grep("b",Str))>0){
- P<-P-Ookisa*cos(Theta)*Ev
+ P<- P-Ookisa*cos(Theta)*Ev
}
- A<-P+Ookisa*cos(Theta)*Ev+Ookisa*sin(Theta)*Nv
- B<-P+Ookisa*cos(Theta)*Ev-Ookisa*sin(Theta)*Nv
+ A<- P+Ookisa*cos(Theta)*Ev+Ookisa*sin(Theta)*Nv
+ B<- P+Ookisa*cos(Theta)*Ev-Ookisa*sin(Theta)*Nv
if(length(grep("l",Str,fixed=TRUE))>0){
- Tmp<-Listplot(list(A,P,B))
+ Tmp<- matrix(c(A,P,B),ncol=2,byrow=TRUE)#181019(2lines)
Tmp1<- Unscaling(Tmp)
Drwline(Tmp1,Futosa)
}
else{
C<- P+(1-Cut)*((A+B)/2-P) # 12.01.07
- Tmp<- Listplot(list(A,P,B,C,A)) # 12.01.07
+ Tmp<- matrix(c(A,P,B,C,A),ncol=2,byrow=TRUE) #181019(2lines)
Tmp1<- Unscaling(Tmp)
Shade(Tmp1)
- Tmp=Listplot(c(A,P,B,C,A,P)) # 15.6.20
+ Tmp= matrix(c(A,P,B,C,A,P),ncol=2,byrow=TRUE)#181019(2lines)
Tmp1=Unscaling(Tmp)
Drwline(Tmp1,0.1) # 15.06.11, 15.06.14
}
@@ -1151,14 +1192,17 @@ Arrowline<- function(...)
R<- P+Yapos*(Q-P)
Tmp=Q-Unscaling(0.2*Ookisa/2*(Q-P)/Norm(Q-P)) # 15.10.24
Drwline(Listplot(c(P,Tmp)),Futosa)
+ Tmp=SCALEY
+ Setscaling(1)
Arrowhead(R,Q-P,Ookisa,Hiraki,Futosa,Cutstr,Str)
+ Setscaling(Tmp)
}
#########################################
Assign<- function(...){
Replace=function (vname,rep,str){#180615from
- opv=c("+","-","*","/","(",")","=","<",">",""," ")
+ opv=c("+","-","*","/","(",")","=","<",">",""," ",",") #180812
out=""
start=1
Tmp=gregexpr(vname,str,fixed=TRUE)
@@ -1166,15 +1210,16 @@ Assign<- function(...){
if(min(Vp)>0){
for(j in Vp){
if(j==1){bf=""}else{bf=substring(str,j-1,j-1)}
- if(j==nchar(str)){af=""}else{af=substring(str,j+1,j+1)}
+ Tmp=j+nchar(vname)-1 #180812(2lines)
+ if(Tmp==nchar(str)){af=""}else{af=substring(str,Tmp+1,Tmp+1)}
tmp1=length(intersect(bf,opv))
tmp2=length(intersect(af,opv))
- tmp=substring(str,start,j)
+ tmp=substring(str,start,j+nchar(vname)-1) #180812
if((tmp1>0)&&(tmp2>0)){
tmp=gsub(vname,rep,tmp,fixed=TRUE)
}
out=paste(out,tmp,sep='')
- start=j+1
+ start=j+nchar(vname) #180812
}
}
out=paste(out,substring(str,start,nchar(str)),sep='')
@@ -1261,13 +1306,21 @@ Assign<- function(...){
}
}
}
+
+FlagL<<- 0
+
for (I in seq(1,length(L),by=2)){
Vname<- L[[I]]
Val<- L[[I+1]]
if(mode(Val)=="numeric"){
- if(Nrow(Val)==1){
+ if(Nrow(Val)==1){
for (K in Looprange(1,length(Val))){
- Tmp<- paste(Vname,"[", as.character(K),"]",sep="")
+ if(length(Val)==1){
+ Tmp<- Vname
+ }
+ else{
+ Tmp<- paste(Vname,"[", as.character(K),"]",sep="")
+ }
if(mode(Val[K])=="numeric"){
Tmp1<- paste("(",as.character(Val[K]),")",sep="")
}
@@ -2373,24 +2426,69 @@ Drwpt<-function(...)
######################################################
-Drwxy<-function(...)
-{
+Drwxy<-function(...){ #180820
varargin<-list(...)
Nargs <- length(varargin)
- Tmp<-grep("arrow", ZIKU)
- if(length(Tmp)>0)
- {
- Arrowline(c(XMIN,GENTEN[2]),c(XMAX,GENTEN[2]),ARROWSIZE)
- Arrowline(c(GENTEN[1],YMIN),c(GENTEN[1],YMAX),ARROWSIZE)
+ Origin=GENTEN
+ Origins=Doscaling(Origin) #181016
+ Xrng=c(XMIN,XMAX)
+ Yrng=c(YMIN,YMAX)
+ Tmp1=Doscaling(c(XMIN,YMIN)) #181017from
+ Tmp2=Doscaling(c(XMAX,YMAX))
+ Xrngs=c(Tmp1[1],Tmp2[1])
+ Yrngs=c(Tmp1[2],Tmp2[2]) #181017from
+ Ziku=ZIKU #180821from
+ Xname=XNAME
+ Xpos=XPOS
+ Yname=YNAME
+ Ypois=YPOS
+ Oname=ONAME
+ Opos=OPOS #180821to
+ for(J in Looprange(1,Nargs)){
+ Tmp=strsplit(varargin[[J]],"=")
+ Tmp=Tmp[[1]]
+ Tmp1=toupper(substring(Tmp[1],1,1))
+ Tmp2=Tmp[2]
+ if(Tmp1=="O"){
+ Origin=eval(parse(text=Tmp2))
+ }
+ if(Tmp1=="X"){
+ Xrng=eval(parse(text=Tmp2))
+ }
+ if(Tmp1=="Y"){
+ Yrng=eval(parse(text=Tmp2))
+ }
+ if(Tmp1=="A"){ #180821from
+ if(substring(Tmp2,1,1)=="c"){
+ Tmp2=substring(Tmp2,3,nchar(Tmp2)-1)
+ }
+ Tmp2=gsub(",","','",Tmp2,fixed=TRUE)
+ Tmp2=paste("'",Tmp2,"'",sep="")
+ Tmp=paste("Setax(",Tmp2,")",sep="")
+ eval(parse(text=Tmp)) #180821to
+ }
+ }
+ Xrng=Xrng+Origin[1]
+ Yrng=Yrng+Origin[2]
+ Xrngs=Xrngs+Origins[1] #181016(2lines)
+ Yrngs=Yrngs+Origins[2]
+ Tmp<- substring(ZIKU,1,1) #180821
+ if(Tmp=="a")
+ {
+ Tmp=substring(ZIKU,2,nchar(ZIKU))
+ if(nchar(Tmp)==0){Tmp=1}else{Tmp=eval(parse(text=Tmp))}
+ Arrowline(c(Xrngs[1],Origins[2]),c(Xrngs[2],Origins[2]),Tmp)#181016(2lines)
+ Arrowline(c(Origins[1],Yrngs[1]),c(Origins[1],Yrngs[2]),Tmp)
}
else
{
- Drwline(Listplot(c(XMIN,GENTEN[2]),c(XMAX,GENTEN[2])))
- Drwline(Listplot(c(GENTEN[1],YMIN),c(GENTEN[1],YMAX)))
+ Drwline(Listplot(c(Xrngs[1],Origins[2]),c(Xrngs[2],Origins[2])))#181016(2lines)
+ Drwline(Listplot(c(Origins[1],Yrngs[1]),c(Origins[1],Yrngs[2])))
}
- Letter(c(XMAX,GENTEN[2]),XPOS,XNAME)
- Letter(c(GENTEN[1],YMAX),YPOS,YNAME)
- Letter(GENTEN,OPOS,ONAME);
+ Letter(c(Xrng[2],Origin[2]),XPOS,XNAME)
+ Letter(c(Origin[1],Yrng[2]),YPOS,YNAME)
+ Letter(Origin,OPOS,ONAME)
+ Setax(Ziku,Xname,Xpos,Yname,Ypois,Oname,Opos) #180821
}
##########################################
@@ -3016,7 +3114,8 @@ Hatchdata<- function(...)
ShaL<- list()
Nargs<- length(varargin)
Kakudo<- 45
- Kankaku<- 0.125*1000/2.54/MilliIn
+# Kankaku<- 0.125*1000/2.54/MilliIn
+ Kankaku<- 0.25*1000/2.54/MilliIn #180706
Tmp<- Doscaling(c(XMIN,YMIN))
Xmn<- Tmp[1]; Ymn<- Tmp[2]
Tmp<- Doscaling(c(XMAX,YMAX))
@@ -3034,7 +3133,7 @@ Hatchdata<- function(...)
Kakudo<- varargin[[N+1]]
if(N==Nargs-2)
{
- Kankaku<- 0.125*varargin[[Nargs]]
+ Kankaku<- Kankaku*varargin[[Nargs]] #180716
}
}
NaitenL<- varargin[[1]]
@@ -3944,19 +4043,19 @@ Kyoukai<- function(...)
Eps<- 10.0^(-4) #17.09.24
PLall<- list()
Sflg<- 0
- N<- length(DataL)
+ N<- Length(DataL) #180621
for (I in Looprange(1,N)){
Data<- Op(I, DataL)
- Tmp<- Op(length(Data),Data)
- if(mode(Tmp)=="numeric" && Nrow(Tmp)==1 && length(Tmp)>1){
- Rg<-Tmp ; Nd<-length(Data)-1
+ Tmp<- Op(Length(Data),Data)
+ if(mode(Tmp)=="numeric" && Nrow(Tmp)==1 && Length(Tmp)>1){ #180621
+ Rg<-Tmp ; Nd<- Length(Data)-1 #180621
}
else{
if(mode(Tmp)=="character"){
- Rg<- Tmp ; Nd<-length(Data)-1
+ Rg<- Tmp ; Nd<- Length(Data)-1 #180621
}
else{
- Rg<- "c" ; Nd<-length(Data)
+ Rg<- "c" ; Nd<- Length(Data) #180621
}
}
for (J in Looprange(1,Nd)){
@@ -3977,7 +4076,7 @@ Kyoukai<- function(...)
P<- Ptstart(Tmp)
Q<- Ptend(Tmp)
if(Norm(P2-P)>Eps && Norm(P2-Q)>Eps){
- Tmp< Length(PL)
+ Tmp< Length(PL) #180621
PL<-PL[Tmp:1,]
Pfirst<- Ptstart(PL)
Plast<- Ptend(PL)
@@ -3986,11 +4085,11 @@ Kyoukai<- function(...)
}
else{
if(Norm(P1-Plast)<Eps){
- Stp<-1; Ks<-2; Ke=Length(Points)
+ Stp<-1; Ks<-2; Ke=Length(Points) #180621
}
else{
if(Norm(P2-Plast)<Eps) {
- Stp<- -1; Ks<-Length(Points)-1; Ke=1
+ Stp<- -1; Ks<-Length(Points)-1; Ke=1 #180621
}
else{
Tmp<-Appendrow(PL,c(Inf,Inf))
@@ -3998,7 +4097,7 @@ Kyoukai<- function(...)
Sflg<- 1
Pfirst<- P1
Plast<- P2
- Stp<- 1; Ks<- Length(Points)-1; Ke<- 1
+ Stp<- 1; Ks<- Length(Points)-1; Ke<- 1 #180621
}
}
for (K in seq(Ks,Ke, by=Stp)){
@@ -4009,7 +4108,7 @@ Kyoukai<- function(...)
}
}
if(Norm(Pfirst-Plast)>Eps){
- Np<- Length(PL)
+ Np<- Length(PL) #180621
if(Rg=="c"){
Tmp<- Appendrow(PL,Pfirst)
PL<- Tmp
@@ -4046,7 +4145,7 @@ Kyoukai<- function(...)
Tmp<- Appendrow(Tmp,Q)
PL<- Appendrow(Tmp,Pfirst)
}
- else if(mode(Rg)=="numeric" && Nrow(Rg)==1 && length(Rg)>1){
+ else if(mode(Rg)=="numeric" && Nrow(Rg)==1 && Length(Rg)>1){ #180621
Tmp<- Kukeiwake(PL)
Tmp1<- Op(1,Tmp)
Tmp2<- Naigai(Rg,list(Tmp1))
@@ -4058,7 +4157,7 @@ Kyoukai<- function(...)
}
}
}
- Tmp<- Ptstart(PL)
+ Tmp<- matrix(Ptstart(PL),nrow=1) #180621
for (J in Looprange(2,Length(PL))){
P<- Op(J,PL)
Q<- Op(Length(Tmp),Tmp)
@@ -4070,7 +4169,7 @@ Kyoukai<- function(...)
PL<-Tmp
PLall<-c(PLall,list(PL))
}
- if(length(PLall)==1 && Sflg==0){
+ if(Length(PLall)==1 && Sflg==0){
Tmp<- Op(1,PLall)
# Tmp<- Op(1,Tmp)
if(Norm(Ptstart(Tmp)-Ptend(Tmp))>Eps0){
@@ -4249,34 +4348,27 @@ V<- Mag/Norm(B-A)*(B-A) ## 10.12.04 from here
################################
-Listplot<-function(...)
-{
+Listplot<-function(...){
varargin<-list(...);
Z<-c();
- for (I in 1:length(varargin))
- {
+ for (I in 1:length(varargin)){
Data<-varargin[[I]];
- if(mode(Data)=="numeric")
- {
- if(class(Data)=="numeric")
- {
- Tmp<-matrix(Data,nrow=2);
- Tmp<-t(Tmp);
- Z<-Appendrow(Z,Tmp)
+ if(mode(Data)=="numeric"){
+ if(class(Data)=="numeric"){
+ Tmp<- matrix(Data,nrow=2);
+ Tmp<- t(Tmp);
+ Z<-Appendrow(Z,Unscaling(Tmp)) #181015
+ }else{
+ Z<-Appendrow(Z,Unscaling(Data)) #181015
}
- else
- Z<-Appendrow(Z,Data)
- }
- else
- {
- for (J in 1:length(Data))
- {
+ }else{
+ for (J in 1:length(Data)){
Tmp<-Data[[J]];
- Z<-Appendrow(Z,Tmp)
+ Z<-Appendrow(Z,Unscaling(Tmp)) #181015
}
}
- }
- return(Z)
+ }
+ return(Z)
}
##############################
@@ -5124,9 +5216,11 @@ Paramplot<- function(...)
Nargs<- length(varargin)
Fnflg<- 0
Fnstr<- varargin[[1]]; Is=2
- Fnstr=Assign(Fnstr) #180510(for KeTCindy)
Rgstr<- varargin[[Is]]; Is<- Is+1
- Rgstr=Assign(Rgstr) #180510(for KeTCindy)
+ Tmp=strsplit(Rgstr,"=") #181017from
+ Var=Tmp[[1]][1]
+ Fnstr=Assign(Fnstr,Var,"t")
+ Rgstr=Assign(Rgstr,Var,"t") #181017from
Range<- c(0,2*pi)
N<- 50 # Numpoints
E<-c() # Exclusions
@@ -5156,7 +5250,7 @@ Paramplot<- function(...)
Rng<- c(0,2*pi)
}
T1<- Rng[1]; T2<- Rng[2]
- Dt<- (T2-T1)/N #17.09.22
+ Dt<- (T2-T1) #180929
if(Fnflg==0)
{
Str<- gsub(Vname,"t",Fnstr)
@@ -5176,9 +5270,8 @@ Paramplot<- function(...)
Tmp<- sort(E)
E<- E[length(Tmp):1]
Ke<- 1
-# for (t in seq(T1, T2+Eps, by=Dt)){#18.02.05
for(jj in 1:(N+1)){
- t=T1+(jj-1)*Dt
+ t=T1+(jj-1)*Dt/N #180929
Pa<- c()
if(t-E[Ke]< Eps)
{
@@ -5210,37 +5303,26 @@ Paramplot<- function(...)
}
Ke<-Ke+1
}
- if(length(Pa)>0)
- {
- if(Pa[1]==Inf)
- {
+ if(length(Pa)>0){
+ if(Pa[1]==Inf){
Tmp<-Appendrow(P,Pa)
P<-Tmp
- }
- else
- {
- if(Nrow(P)==0)
- {
+ }else{
+ if(Nrow(P)==0){
Tmp<- Appendrow(P,Pa)
P<-Tmp
- }
- else
- {
+ }else{
Tmp<- Op(Nrow(P),P)
- if(Tmp[1]==Inf)
- {
+ if(Tmp[1]==Inf){
Tmp<- Appendrow(P,Pa)
P<- Tmp
- }
- else
- {
- if(Norm(Tmp-Pa)<D)
- {
- Tmp<-Appendrow(P,Pa)
- P<-Tmp
- }
- else
- {
+ }else{
+ if(Norm(Tmp-Pa)<D){
+ if(Norm(Tmp-Pa)>Eps){ #180928
+ Tmp<-Appendrow(P,Pa)
+ P<-Tmp
+ } #180928
+ }else{
Tmp<- Appendrow(P,c(Inf,Inf),Pa)
P<- Tmp
}
@@ -5375,11 +5457,11 @@ Plotdata<- function(...)
}
}
X1<- Rng[1]; X2<- Rng[2]
- dx<- (X2-X1)/N # 17.09.22
+ dx<- (X2-X1) #180929
if(Fnflg==0){
Str<- gsub(Vname,"x",Fnstr,fixed=TRUE)
}
- if(abs(dx)<Eps){ # Scilab 16.12.13
+ if(abs(dx/N)<Eps){ #180929
x=X1
P=c(X1,eval(parse(text=Str)))
return(P)
@@ -5394,7 +5476,9 @@ Plotdata<- function(...)
Tmp<- sort(E)
E<- E[length(Tmp):1]
Ke<- 1
- for (x in seq(X1,X2,by=dx)){
+# for (x in seq(X1,X2,by=dx)){
+ for (J in 0:N){ #180929
+ x=X1+dx*J/N #180929
if(nchar(Exfun)>0){
Tmp<-eval(parse(text=Exfun))
if(abs(Tmp)<Eps){
@@ -6587,21 +6671,14 @@ Setax<- function(...)
{
varargin<- list(...)
Nargs<- length(varargin)
- if(Nargs==0){
- if(ZIKU=="line"){
- Tmp<- ","
- }
- else{
- Tmp<- paste("(Arrowsize=", as.character(ARROWSIZE),"),",sep="")
- }
- Str<- paste(ZIKU,Tmp,XNAME,",",XPOS,",",sep="")
+ if(Nargs==0){ #180821(next 2 lines)
+ Str<- paste(ZIKU,",",XNAME,",",XPOS,",",sep="")
Str<- paste(Str,YNAME,",",YPOS,",",ONAME,",",OPOS,sep="")
return(Str)
}
ArgL<- c()
- Is<- 1
Tmp<- varargin[[1]]
- if(mode(Tmp)=="numeric" && length(Tmp)==1){
+ if(is.numeric(Tmp)){ #180821
Is<- varargin[[1]]
ArgL<- c()
for (I in Looprange(1,Is-1)){
@@ -6611,50 +6688,18 @@ Setax<- function(...)
ArgL<- c(ArgL,varargin[[I]])
}
}
- else{
- if(Nargs==1){
- ArgL<- c(varargin[[1]])
- }
- else{
- Tmp<- varargin[[2]]
- if(mode(Tmp)=="numeric" && length(Tmp)==1){
- ARROWSIZE<<-Tmp
- ArgL<- c(varargin[[1]])
- for (I in Looprange(3,Nargs)){
- ArgL<- c(ArgL,varargin[[I]])
- }
- }
- else{
- ArgL<- c()
- for (I in 1:Nargs){
- ArgL<- c(ArgL,varargin[[I]])
- }
- }
+ else{ #180821from
+ for (I in Looprange(1,Nargs)){
+ ArgL<- c(ArgL,varargin[[I]])
}
}
for (I in Looprange(length(ArgL)+1,7)){
ArgL<- c(ArgL,"")
- }
- Zk<- ArgL[1]
- if(nchar(Zk)>0){
- ZL<-substr(Zk,2,nchar(Zk))
- Zk<-substr(Zk,1,1)
- if(nchar(ZL)>0){
- ARROWSIZE<<- as.numeric(ZL)
- }
- }
+ } #180821to
Xn<- ArgL[2]; Xp<- ArgL[3]
Yn<- ArgL[4]; Yp<- ArgL[5]
- Genn<- ArgL[6]; Genp<- ArgL[7]
- if(nchar(Zk)>0){
- C<- Zk
- if(C=="a"){
- ZIKU<<- "arrow"
- }
- else{
- ZIKU<<- "line"
- }
- }
+ On<- ArgL[6]; Op<- ArgL[7]
+ ZIKU<<- ArgL[1] #180821
if(nchar(Xn)>0){
XNAME<<- paste("$",Xn,"$",sep="")
}
@@ -6667,11 +6712,11 @@ Setax<- function(...)
if(nchar(Yp)>0){
YPOS<<-Yp
}
- if(nchar(Genn)>0){
- ONAME<<- Genn
+ if(nchar(On)>0){
+ ONAME<<- On
}
- if(nchar(Genp)>0){
- OPOS<<- Genp
+ if(nchar(Op)>0){
+ OPOS<<- Op
}
Out<- "";
}
@@ -6743,41 +6788,39 @@ Setorigin<- function(...)
################################
-Setscaling<- function(...)
-{
+Setscaling<- function(...){
varargin<- list(...)
Nargs<- length(varargin)
- if(Nargs==0)
- {
- return(c(SCALEY,LOGX,LOGY))
+ if(Nargs==0){
+ return(c(SCALEX,SCALEY,LOGX,LOGY))
}
- for (I in 1:Nargs)
- {
+ Tmp=varargin[[1]] #181020from
+ if((Nargs==1)&&(is.numeric(Tmp))){
+ SCALEY<<- Tmp
+ return(invisible(c(SCALEX,SCALEY,LOGX,LOGY)))
+ }
+ nCtr=1 #181020to
+ for (I in 1:Nargs){
Tmp<- varargin[[I]]
- if(mode(Tmp)=="numeric")
- {
- SCALEY<<- Tmp
+ if(mode(Tmp)=="numeric"){
+ if(nCtr==1)SCALEX<<- Tmp #181020(2llines)
+ if(nCtr==2)SCALEY<<- Tmp
+ nCtr=nCtr+1
}
- if(mode(Tmp)=="character")
- {
- if(Tmp=="l")
- {
+ if(mode(Tmp)=="character"){
+ if(Tmp=="l"){
LOGX<<- 0
LOGY<<- 1
- }
- else if(Tmp=="ll")
- {
+ }else if(Tmp=="ll"){
LOGX<<- 1
LOGY<<- 1
- }
- else
- {
+ }else{
LOGX<<- 0
LOGY<<- 0
}
}
}
- Tmp<- c(SCALEY,LOGX,LOGY);
+ Tmp<- c(SCALEX,SCALEY,LOGX,LOGY)
}
#########################################
@@ -7009,51 +7052,35 @@ Shade<- function(...)
}
}
if(Iroflg==1){
- if(Wfile=="default")
- cat(Str,"%\n",file="",append=TRUE,sep="")
- else
- cat(Str,"%\n",file=Wfile,append=TRUE,sep="")
}
}
Tmp<- varargin[[1]]
- Data<- Kyoukai(Tmp)
- for (I in Looprange(1, length(Data))){
+# Data<- Kyoukai(Tmp)
+ Data= Joincrvs(Tmp) #180929from
+ Data=list(Data) #180929to
+ for (I in Looprange(1, Length(Data))){ #180621
PL<- Op(I,Data)
+ PL=Appendrow(PL,Op(1,PL)) #180929
Mojisu<- 0
- for (J in 1:Nrow(PL)){
+ for (J in Looprange(1,Length(PL))){
P<- Doscaling(Op(J,PL))
X<- as.character(round(MilliIn*P[1]))
Y<- as.character(-round(MilliIn*P[2]))
Str<- paste("\\special{pa ",X," ",Y,"}",sep="")
- if(Wfile=="default")
- cat(Str,file="",append=TRUE,sep="")
- else
- cat(Str,file=Wfile,append=TRUE,sep="")
+ cat(Str,file=Wfile,append=TRUE,sep="")
Mojisu<- Mojisu+nchar(Str)
if(Mojisu>80){
- if(Wfile=="default")
- cat("%\n",file="",append=TRUE,sep="")
- else
- cat("%\n",file=Wfile,append=TRUE,sep="")
+ cat("%\n",file=Wfile,append=TRUE,sep="")
Mojisu<- 0
}
}
Str1<- paste("\\special{sh ",as.character(Kosa),"}",sep="")
Str2<- paste("\\special{ip}%\n",sep="")
- if(Wfile=="default"){
- cat(Str1,file="",append=TRUE,sep="")
- cat(Str2,file="",append=TRUE,sep="")
- }
- else{
- cat(Str1,file=Wfile,append=TRUE,sep="")
- cat(Str2,file=Wfile,append=TRUE,sep="")
- }
+ cat(Str1,file=Wfile,append=TRUE,sep="")
+ cat(Str2,file=Wfile,append=TRUE,sep="")
}
if(Iroflg==1){
- if(Wfile=="default")
- cat("}%\n",file="",append=TRUE,sep="")
- else
- cat("}%\n",file=Wfile,append=TRUE,sep="")
+ cat("}%\n",file=Wfile,append=TRUE,sep="")
}
}
@@ -9752,6 +9779,142 @@ Projpers<- function(...){
}
#########################################
+# 180807
+
+Reflect3data<- function(...){
+ varargin<-list(...)
+ Nargs<- length(varargin)
+ Pd3<- varargin[[1]]
+ VL<- varargin[[2]]
+ if(Mixtype(Pd3)==1){
+ Pd3<- list(Pd3)
+ } else if(Mixtype(Pd3)==3){
+ Tmp<- list()
+ for (I in Looprange(1,Length(Pd3))){
+ Tmp<- c(Tmp,Op(I,Pd3))
+ }
+ Pd3<- Tmp
+ }
+ Out<- list()
+ for (I in Looprange(1,Length(Pd3))){
+ PD<- Op(I,Pd3)
+ Ans<- c()
+ for (J in Looprange(1,Nrow(PD))){
+ if(is.matrix(PD)){
+ P<- PD[J,]
+ }
+ else{
+ P<- PD
+ }
+ Tmp<- Reflect3pt(P,VL)
+ Ans<- rbind(Ans,Tmp)
+ }
+ rownames(Ans)<- 1:Nrow(Ans)
+ Out<- c(Out,list(Ans))
+ }
+ if(Length(Out)==1){
+ Out<- Op(1,Out)
+ }
+ return(Out)
+}
+
+#######################################
+
+Reflect3pt<- function(...){
+ varargin<-list(...)
+ Nargs<-length(varargin)
+ P<- varargin[[1]]
+ VL<- varargin[[2]]
+ if(Length(VL)==1){
+ Ans=2*Op(1,VL)-P
+ }
+ if(Length(VL)==2){
+ V1=Op(1,VL)
+ V2=Op(2,VL)
+ V3=(V2-V1)/Norm(V2-V1)
+ Tmp=V1+Dotprod(P-V1,V3)*V3
+ Ans=2*Tmp-P
+ }
+ if(Length(VL)==3){
+ V1=Op(1,VL)
+ V2=Op(2,VL)
+ V3=Op(3,VL)
+ Tmp=Crossprod(V2-V1,V3-V1)
+ Tmp1=P-Dotprod(Tmp, P-V1)/Norm(Tmp)^2*Tmp
+ Ans=2*Tmp1-P
+ }
+ return(Ans)
+}
+
+#########################################
+# 180807
+
+Scale3data<- function(...){
+ varargin<-list(...)
+ Nargs<- length(varargin)
+ Pd3<- varargin[[1]]
+ R<- varargin[[2]]
+ C<- varargin[[3]]
+ C<- c(0,0,0)
+ if(Nargs>=3){
+ C<- varargin[[3]]
+ }
+ if(Mixtype(Pd3)==1){
+ Pd3<- list(Pd3)
+ } else if(Mixtype(Pd3)==3){
+ Tmp<- list()
+ for (I in Looprange(1,Length(Pd3))){
+ Tmp<- c(Tmp,Op(I,Pd3))
+ }
+ Pd3<- Tmp
+ }
+ Out<- list()
+ for (I in Looprange(1,Length(Pd3))){
+ PD<- Op(I,Pd3)
+ Ans<- c()
+ for (J in Looprange(1,Nrow(PD))){
+ if(is.matrix(PD)){
+ P<- PD[J,]
+ }
+ else{
+ P<- PD
+ }
+ Tmp<- Scale3pt(P,R,C)
+ Ans<- rbind(Ans,Tmp)
+ }
+ rownames(Ans)<- 1:Nrow(Ans)
+ Out<- c(Out,list(Ans))
+ }
+ if(Length(Out)==1){
+ Out<- Op(1,Out)
+ }
+ return(Out)
+}
+
+#######################################
+
+Scale3pt<- function(...){
+ varargin<-list(...)
+ Nargs<-length(varargin)
+ P<- varargin[[1]]
+ R<- varargin[[2]]
+ if(length(R)==1){ #180808from
+ R=c(R,R,R)
+ } #180808to
+ C<- c(0,0,0)
+ if(Nargs>=3){
+ C<- varargin[[3]]
+ }
+ X1=P[1]; Y1=P[2]; Z1=P[3]
+ Cx=C[1]; Cy=C[2]; Cz=C[3]
+ X2=Cx+R[1]*(X1-Cx)
+ Y2=Cy+R[2]*(Y1-Cy)
+ Z2=Cz+R[3]*(Z1-Cz)
+ Ans=c(X2,Y2,Z2)
+ return(Ans)
+}
+
+#########################################
# 11.08.27
# 14.03.23 Debugged "center"
@@ -9785,7 +9948,7 @@ Rotate3data<- function(...){
}
else{
P<- PD
- }
+ }
Tmp<- Rotate3pt(P,W1,W2,C) # 14.03.23
Ans<- rbind(Ans,Tmp)
} # 11.08.27
@@ -9886,6 +10049,45 @@ Rotate3pt<- function(...){
return(Ans)
}
+#################################
+
+Translate3data<- function(...){
+ varargin<- list(...)
+ Nargs<- length(varargin)
+ Pd3<- varargin[[1]]
+ Mv<- varargin[[2]]
+ if(mode(Mv)=="numerice" && length(Mv)==1){
+ Mv<- c(varargin[[2]],varargin[[3]],varargin[[4]])
+ }
+ if(Mixtype(Pd3)==1){
+ Pd3<- list(Pd3)
+ }
+ else if(Mixtype(Pd3)==3){
+ Tmp<-list()
+ for(I in Looprange(1,Mixlength(Pd3))){
+ Tmp<- c(Tmp, Op(I,Pd3))
+ }
+ Pd3<- Tmp
+ }
+ Out<- list()
+ for(I in Looprange(1,Mixlength(Pd3))){
+ PD<- Op(I,Pd3)
+ PD<- rbind(c(),PD)
+ Ans<- c()
+ for(J in Looprange(1,Nrow(PD))){
+ P<- PD[J,]
+ Tmp<- P+Mv
+ Ans<- rbind(Ans,Tmp)
+ }
+ rownames(Ans)<- 1:Nrow(Ans)
+ Out<- c(Out,list(Ans))
+ }
+ if(Mixlength(Out)==1){
+ Out<- Op(1,Out)
+ }
+ return(Out)
+}
+
######################################
Setangle<- function(...){
@@ -10198,11 +10400,11 @@ Spacecurve<- function(...){
Rng<- c(XMIN,XMAX)
}
T1<- Rng[1]; T2<- Rng[2]
- Dt<- (T2-T1)/N #17.09.22
+ Dt<- (T2-T1) #180929
Str<- gsub(Vname,"t",Fnstr)
Str=gsub("[","c(",Str,fixed=TRUE) #17.12.22(2lines)
Str=gsub("]",")",Str,fixed=TRUE)
- if(abs(Dt)<Eps){ # 16.12.13
+ if(abs(Dt/N)<Eps){ #180929
t=T1
P=eval(parse(text=Str))
return(P)
@@ -10213,7 +10415,7 @@ Spacecurve<- function(...){
E<- sort(E,decreasing=FALSE)
Ke<- 1
for(jj in 1:(N+1)){
- t=T1+(jj-1)*Dt
+ t=T1+(jj-1)*Dt/N #180929
Pa<- c()
if(t-E[Ke]< Eps){
Pa<- eval(parse(text=Str))
@@ -10284,45 +10486,6 @@ Spaceline<- function(...){
return(Z)
}
-#################################
-
-Translate3data<- function(...){
- varargin<- list(...)
- Nargs<- length(varargin)
- Pd3<- varargin[[1]]
- Mv<- varargin[[2]]
- if(mode(Mv)=="numerice" && length(Mv)==1){
- Mv<- c(varargin[[2]],varargin[[3]],varargin[[4]])
- }
- if(Mixtype(Pd3)==1){
- Pd3<- list(Pd3)
- }
- else if(Mixtype(Pd3)==3){
- Tmp<-list()
- for(I in Looprange(1,Mixlength(Pd3))){
- Tmp<- c(Tmp, Op(I,Pd3))
- }
- Pd3<- Tmp
- }
- Out<- list()
- for(I in Looprange(1,Mixlength(Pd3))){
- PD<- Op(I,Pd3)
- PD<- rbind(c(),PD)
- Ans<- c()
- for(J in Looprange(1,Nrow(PD))){
- P<- PD[J,]
- Tmp<- P+Mv
- Ans<- rbind(Ans,Tmp)
- }
- rownames(Ans)<- 1:Nrow(Ans)
- Out<- c(Out,list(Ans))
- }
- if(Mixlength(Out)==1){
- Out<- Op(1,Out)
- }
- return(Out)
-}
-
###############################################
Xyzax3data<- function(Xrange,Yrange,Zrange){
@@ -11490,17 +11653,17 @@ Implicitplot<- function(...){ #180402
Rngy=eval(parse(text=Tmp[2]))
Tmp=paste("Impfun<- function(",Varx,",",Vary,"){",Fn,"}",sep="")
eval(parse(text=Tmp))
- dx=(Rngx[2]-Rngx[1])/Mdv
- dy=(Rngy[2]-Rngy[1])/Ndv
+ dx=(Rngx[2]-Rngx[1]) #180929
+ dy=(Rngy[2]-Rngy[1]) #180929
out=list()
for(jj in 1:Ndv){
- yval1=Rngy[1]+(jj-1)*dy
- yval2=Rngy[1]+jj*dy
+ yval1=Rngy[1]+(jj-1)*dy/Ndv #180929
+ yval2=Rngy[1]+jj*dy/Ndv #180929
xval1=Rngx[1]
eval11=Impfun(xval1,yval1)
eval12=Impfun(xval1,yval2)
for(ii in 1:Mdv){
- xval2=Rngx[1]+ii*dx
+ xval2=Rngx[1]+ii*dx/Mdv #180929
eval21=Impfun(xval2,yval1)
eval22=Impfun(xval2,yval2)
pL=list(c(xval1,yval1));vL=c(eval11)
@@ -12135,18 +12298,18 @@ Objcurve<- function(...){
if(Nargs>=3){
Np=Args[[3]]
}
- Assign("Sz",Sz)
+# Assignadd("Sz",Sz) #180901
if(Pstr=="xy"){
Vz=c(0,0,1)
- Fs=Assign("c(Sz*cos(t),Sz*sin(t),0)")
+ Fs=Assign("c(Sz*cos(t),Sz*sin(t),0)","Sz",Sz) #180901
}
if(Pstr=="yz"){
Vz=c(1,0,0)
- Fs=Assign("c(0,Sz*cos(t),Sz*sin(t))")
+ Fs=Assign("c(0,Sz*cos(t),Sz*sin(t))","Sz",Sz) #180901
}
if(Pstr=="zx"){
Vz=c(0,1,0)
- Fs=Assign("c(Sz*sin(t),0,Sz*cos(t))")
+ Fs=Assign("c(Sz*sin(t),0,Sz*cos(t))","Sz",Sz) #180901
}
Gc0=Spacecurve(Fs,"t=c(0,2*pi)",paste("Num=",as.character(Np),sep=""))
P=PL[[1]]; Q=PL[[2]]; R=PL[[length(PL)-1]]
@@ -12218,7 +12381,7 @@ Objcurve<- function(...){
}
Objsymb<- function(Symb,Thick,Face,Dir){
- for(J in Looprange(1,length(Symb))){
+ for(J in Looprange(1,Length(Symb))){
Objcurve(Op(J,Symb),Thick,Face,Dir)
}
}
@@ -12750,6 +12913,7 @@ Enclosing2<- function(...){
Nargs=length(varargin)
plist=varargin[[1]]
Eps0=10^(-5)
+ epspara=1; #180707
Eps1=0.01
Eps2=0.1
Start=c()
@@ -12757,10 +12921,11 @@ Enclosing2<- function(...){
for(ii in Looprange(2,Nargs)){
tmp=varargin[[ii]]
if(length(tmp)>1){
-# Start=tmp
+ Start=tmp
}else{
- if(flg==0){Eps1=tmp}
- if(flg==1){Eps2=tmp}
+ if(flg==0){epspara=tmp}
+ if(flg==1){Eps1=tmp}
+ if(flg==2){Eps2=tmp}
flg=flg+1
}
}
@@ -12788,41 +12953,46 @@ Enclosing2<- function(...){
plist=c(plist,list(tmp))
Start=tmp2
tst=1
-# flg=1
}else{
if(length(KL)==1){
tmp=Op(1,KL)
tst=Op(2,tmp)
- Start=crv(tst,Fdata)
+ Start=Op(1,tmp) #180706
}
if(length(KL)>1){
- KL=Quicksort(KL,2)
+ KL=Quicksort(KL,2) #180706from
if(length(Start)==0){
tmp=Op(1,KL)
tst=Op(2,tmp)
- Start=Pointoncurve(tst,Fdata)
+ Start=Op(1,tmp)
}else{
tmp=c()
- for(ii in Looprange(1,length(KL))){
- tmp=c(tmp,Norm(Op(1,KL[[ii]]-Start)))
- }
- tmp=min(tmp)
tmp1=list()
for(ii in Looprange(1,length(KL))){
tmp2=Op(1,KL[[ii]])
- if(Norm(tmp2-Start)==tmp){
- tmp1=c(tmp1,list(tmp2))
+ flgsame=0 #180717from
+ for(jj in Looprange(1,length(tmp1))){
+ if(Norm(tmp2-Op(jj,tmp1))<Eps1){
+ flgsame=1
+ break
+ }
}
+ if(flgsame==0){
+ tmp=c(tmp,Norm(Op(1,KL[[ii]])-Start))
+ tmp1=c(tmp1,list(tmp2))
+ } #180717to
}
- tmp=Op(1,tmp1)
+ tmp=order(tmp)
+ tmp=Op(tmp[1],KL)
tst=Op(2,tmp)
- Start=Pointoncurve(tst,Fdata)
+ Start=Op(1,tmp)#180706to
}
}
}
}
if(flg==0){
t1=tst
+ p1=Pointoncurve(t1,Fdata)#180713
for(nn in Looprange(1,length(plist))){
Fdata=Op(nn,plist)
if(nn==length(plist)){
@@ -12837,19 +13007,42 @@ Enclosing2<- function(...){
Gdata=Appendrow(tmp,Gdata)
plist[[nxtno]]=Gdata
t2=Length(Fdata)
- ss=1 #18.02.02until
+ ss=1 #18.02.02to
}else{
- tmp=Op(1,KL)
- t2=Op(2,tmp)
- ss=Op(3,tmp)
+# KL=Quicksort(KL,2); #180706from
+# for(j in Looprange(1,length(KL))){
+# tmp1=t1+epspara/50*Length(Fdata)#180713(2lines)
+# tmp2=Op(2,KL[[j]])
+# if((tmp2>tmp1)||((tmp2>t1)&&(Norm(Op(3,KL[[j]])-p1)>Eps1))){
+# break
+# } #180711,16
+# }
+# t2=Op(2,KL[[j]])
+# p2=Pointoncurve(t2,Fdata)#180713
+# ss=Op(3,KL[[j]])# 180706to
+ tmp=c() #180711from
+ for(j in Looprange(1,length(KL))){
+ tmp=c(tmp,Op(2,KL[[j]]))
+ }
+ tmp1=order(tmp)
+ tmp2=KL
+ KL=list()
+ for(j in tmp1){
+ tmp=tmp2[[j]]
+ tmp3=t1+epspara/50*Length(Fdata)
+ tmp4=Op(2,tmp)
+ if((tmp4>tmp3)||((tmp4>t1)&&(Norm(Op(1,tmp)-p1)>Eps1))){
+ KL=c(KL,list(tmp))
+ }
+ }
+ t2=Op(2,KL[[1]])
+ ss=Op(3,KL[[1]]) #180711from
if(abs(t2-t1)<Eps0){
if(length(KL)>1){
tmp=Op(2,KL)
t2=Op(2,tmp)
ss=Op(3,tmp)
}else{
-# println(text(nn)+" and "+text(nn+1)+" not intersect");
-# flg=1
}
}
}
@@ -12861,8 +13054,9 @@ Enclosing2<- function(...){
tmp=tmp[2:Length(tmp),]
AnsL=Appendrow(AnsL,tmp)
}
- t1=ss
}
+ t1=ss
+ p1=Pointoncurve(t1,Gdata)#180713
}
}
return(AnsL)
@@ -13713,10 +13907,14 @@ Nohiddenpara2<- function (Par,Fk,Uveq,Np,Eps1,Eps2){
FigkL=c(FigkL,list(Fk))
}
}
- Tmp=c()
- for(I in Looprange(1,length(PaL)-1)){
- if(!Member(I,SeL)){
- Tmp=c(Tmp,I)
+ if(length(SeL)==0){#181024from
+ Tmp=Looprange(1,length(PaL)-1)
+ }else{ #181024to
+ Tmp=c()
+ for(I in Looprange(1,length(PaL)-1)){
+ if(!Member(I,SeL)){
+ Tmp=c(Tmp,I)
+ }
}
}
SeL=Tmp
@@ -14377,7 +14575,7 @@ Wireparadata<- function(...){
if(ctr==2){Eps2=tmp}
}
}
- if(length(DuL)==1){ #180430
+ if(!is.list(DuL)){ #181024
tmp1=DuL
DuL=list()
for(jj in Looprange(1,tmp1)){
@@ -14385,7 +14583,7 @@ Wireparadata<- function(...){
DuL=c(DuL,list(tmp))
}
}
- if(length(DvL)==1){ #180430
+ if(!is.list(DvL)){ #181024
tmp1=DvL
DvL=list()
for(jj in Looprange(1,tmp1)){
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_rep2e.r b/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_rep2e.r
index 370339480ae..bce6137fea1 100755
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_rep2e.r
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketpiccurrent_rep2e.r
@@ -16,12 +16,16 @@
#########################################
-ThisVersion<- "2ev5_2_3(17.10.28)"
+ThisVersion<- "2ev5_2_4(180930)"
+# 20180930
+# Drwpt debugged ( the last newline added)
+# 20180929
+# Shade changed (Kyoukai => Joincrvs)
# 2017.10.28
# Drwpt debugged ( Flattenlist )
# 2017.10.07
-#
+# Dottedline,Drwline,Drwpt,Makehasen,Beginpicture,Setpen,Shade
#############################################
@@ -286,34 +290,9 @@ Drwpt<-function(...)
Fmt=paste(Str,'\n',sep="")
}
cat(Str,file=Wfile,append=TRUE)
+ cat("\n",file=Wfile,append=TRUE) #180930
}
-# PL<-c()
-# for (J in 0:N){
-# PL<- c(PL,P+CL[J+1,])
-# }
-# PL<-matrix(PL,nrow=2)
-# PL<-t(PL)
-# Mojisu<-0
-# for (J in 1:Nrow(PL)){
-# Q<- PL[J,]
-# X<- as.character(round(MilliIn*Q[1]))
-# Y<- as.character(-round(MilliIn*Q[2]))
-# Str<- paste("\\special{pa ",X," ",Y,"}",sep="")
-# cat(Str,file=Wfile,append=TRUE)
-# Mojisu<- Mojisu+nchar(Str)
-# if (Mojisu>80){
-# cat("#\n",file=Wfile,append=TRUE)
-# }
-# Mojisu=0
-# }
-# Str1<- paste("\\special{sh ",as.character(Kosa),"}",sep="")
-# Str2<- "\\special{fp}%\n"
-# cat(Str1,file=Wfile,append=TRUE)
-# cat(Str2,file=Wfile,append=TRUE)
-# }
-# }
-#}
######################################
@@ -546,9 +525,12 @@ Shade<- function(...)
}
Mojisu=0
Tmp=varargin[[1]]
- Data=Kyoukai(Tmp)
+# Data=Kyoukai(Tmp)
+ Data= Joincrvs(Tmp) #180929from
+ Data=list(Data) #180929to
for (I in Looprange(1, length(Data))){
PL<- Op(I,Data)
+ PL=Appendrow(PL,Op(1,PL)) #180929
Mojisu<- 0
for (J in 1:Nrow(PL)){
P<- Doscaling(Op(J,PL))