summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs')
-rw-r--r--Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs1041
1 files changed, 433 insertions, 608 deletions
diff --git a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs
index f14e3ff603e..956e726b438 100644
--- a/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs
+++ b/Master/texmf-dist/scripts/ketcindy/ketlib/ketcindylib3dr.cs
@@ -14,27 +14,21 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>
//
-println("ketcindylib3d[20190301] loaded");
+println("ketcindylib3d[20190511] loaded");
//help:start();
////%Ketinit3d start////
Ketinit3d():=Ketinit3d(1);
-Ketinit3d(sf):=(
- regional(tmp);
- tmp=round(4*SW.y)/4;
-// Ketinit3d(sf,[round(SW.x)+1,tmp-0.5,tmp-1]);
- Ketinit3d(sf,[-5,tmp-0.5,tmp-1]);
-);
-Ketinit3d(subflg,position):=(
+Ketinit3d(subflg):=(
//help:Ketinit3d();
//help:Ketinit3d(0);
- regional(ctr,tmp,tmp1,tmp2,tmp3,tmp4,xPos,yTh,yPh);
- BezierNumber3=1; //15.02.28
+ regional(ctr,tmp,tmp1,tmp2,tmp3,tmp4);
+ BezierNumber3=1; //15.02.28 // no ketjs on
if(!islist(BZLIST3),
BZLIST3=[]; //15.02.28
,
- tmp=apply(allpoints(),text(#));
+ tmp=apply(allpoints(),#.name); //190505
tmp1=select(tmp,substring(#,length(#)-1,length(#))=="p");
tmp2=[];
forall(tmp1,ctr,
@@ -45,35 +39,10 @@ Ketinit3d(subflg,position):=(
);
);
BZLIST3=tmp2;
- );
- SUBSCR=subflg;
+ ); // no ketjs off
+ SUBSCR=subflg; // no ketjs
+ // SUBSCR=0 // only ketjs
Setwindow("Msg=no");
- if(length(position)>2,
- xPos=position_1;
- yTh=position_2;
- yPh=position_3;
- ,
- xPos=0;
- yTh=position_1;
- yPh=position_2;
- );
-// THETA=60*pi/180;
-// PHI=30*pi/180;
- FocusPoint=[0,0,0];
- EyePoint=[5,5,5];
- Listplot("th",[[xPos,yTh],[xPos+9,yTh]],["notex","linecolor->[0,1,0]","Msg=no"]);
- Listplot("ph",[[xPos,yPh],[xPos+9,yPh]],["notex","linecolor->[0,1,0]","Msg=no"]);
- //16.02.10
- PutonCurve("TH",sgth,[xPos,xPos+9,"Msg=no"]);
- PutonCurve("FI",sgph,[xPos,xPos+9,"Msg=no"]);
- THETA=(TH.x-xPos)*20*pi/180;
- PHI=(FI.x-xPos)*40*pi/180;
-// Defvar("THETA",THETA); // 16.06.20
-// Defvar("PHI",PHI); // 16.06.20
- drawtext([xPos-0.8,yTh-0.1],Sprintf((TH.x-xPos)*20,2),align->"right"); //17.05.02
- drawtext([xPos-0.8,yPh-0.1],Sprintf((FI.x-xPos)*40,2),align->"right"); //17.05.02
- tmp="Setangle("+text((TH.x-xPos)*20)+","+text((FI.x-xPos)*40)+")";
- GLIST=append(GLIST,tmp);
Addax(0);
TSIZE=10;
TSIZEZ=10;
@@ -82,55 +51,84 @@ Ketinit3d(subflg,position):=(
////%Ketinit3d end////
////%Start3d start////
-Start3d():=Start3d([]);
-Start3d(ptexception):=(
+Start3d():=Start3d([],[]);
+Start3d(Arg):=( //190503from
+ regional(tmp);
+ tmp=select(Arg,indexof(#,"=")>0);
+ if(length(tmp)==0,
+ Start3d(Arg,[]);
+ ,
+ Start3d([],Arg);
+ );
+);
+Start3d(ptexception,optionjs):=(//190503to
//help:Start3d();
//help:Start3d(["A","B"](exceptionptlist));
+//help:Start3d(optionjs=["Slider=n","Removept=[]");
regional(xmn,xMx,ymn,yMx,pt,pt3,pt2,
xPos,yTh,yPh,Eps,tmp,tmp1,tmp2,tmp3,tmp4);
PTEXCEPTION=[];
- Setfiles(Namecdy); //180608
- ConstantListC=[[50,50],[5000,1500,500,200],[0.00001,0.01,0.1]];
+ SLIDEFLG="Y";
+ forall(optionjs,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="S",
+ SLIDEFLG=Toupper(substring(tmp_2,0,1));
+ );
+ if(tmp1=="R",
+ tmp2=tmp_2;
+ if(substring(tmp2,0,1)=="[",tmp2=substring(tmp2,1,length(tmp2)-1));
+ tmp2=tokenize(tmp2,",");
+ REMOVEPTJS=concat(REMOVEPTJS,tmp2);
+ );
+ );
+ Setfiles(Namecdy); //180608 // no ketjs
+ ConstantListC=[[50,50],[5000,1500,500,200],[0.00001,0.01,0.1]]; // no ketjson
FuncListC=[];
CommandListC=[]; //180531
CutFunList=[];//180601
EraseList=[];//180601
- ADDPACK=[]; //180606
+ ADDPACK=[]; //180606 // no ketjs off
GCLIST=[];
- GLIST=[];
+ GLIST=[]; // no ketjs on
FUNLIST=[];
COM0thlist=[];
COM1stlist=[];
- COM2ndlist=[];
+ COM2ndlist=[]; // no ketjs off
SEG3dlist=[];
- OutFileList=[];
+ OutFileList=[]; // no ketjs on
FigPdfList=[]; // 16.04.08
ErrFlag=0;
- OBJCMD=[]; // 16.11.29from
+ OBJCMD=[]; // 161129from
OCNAME=Fhead;
- OCOPTION=["m","v"];// 16.11.29until
+ OCOPTION=["m","v"];// 161129to //no ketjs off
+ KETJSOP=[]; //190129
+ REMOVEPTJS=[]; SLIDEFLG="Y"; //190504
+ KetcindyjsDataList=[]; //190511
ArrowlineNumber=1; // 16.01.31
ArrowheadNumber=1;
BezierNumber=1; //16.01.31
BezierNumber3=1; //16.08.19
- Fnametex=Fhead+".tex"; // 15.04.06
+ Fnametex=Fhead+".tex"; // 15.04.06 //no ketjs on
FnameR=Fhead+".r";
FnameRbody=Fhead+"body.r";
- Fnameout=Fhead+".txt";
+ Fnameout=Fhead+".txt"; // no ketjs off
Setwindow("Msg=no"); // 16.06.20from
- tmp=round(4*SW.y)/4;
- xPos=-5; yTh=tmp-0.5; yPh=tmp-1;
- Slider("TH",[xPos,yTh],[xPos+9,yTh],["Color=green"]); //190209
- Slider("FI",[xPos,yPh],[xPos+9,yPh],["Color=green"]); //190209
- drawtext([xPos-0.8,yTh-0.1],Sprintf((TH.x-xPos)*20,2),align->"right"); //17.05.02
- drawtext([xPos-0.8,yPh-0.1],Sprintf((FI.x-xPos)*40,2),align->"right"); //17.05.02
- tmp="Setangle(" //no ketjs on
- +format((TH.x-xPos)*20,5)+","
+ tmp=round(4*SW.y)/4;
+ xPos=-5; yTh=tmp-0.5; yPh=tmp-1;
+// if(SLIDEFLG=="Y", // only ketjs //190503from
+ Slider("TH",[xPos,yTh],[xPos+9,yTh],["Color=green"]); //190209
+ Slider("FI",[xPos,yPh],[xPos+9,yPh],["Color=green"]); //190209
+ drawtext([xPos-0.8,yTh-0.1],Sprintf((TH.x-xPos)*20,2),align->"right"); //17.05.02
+ drawtext([xPos-0.8,yPh-0.1],Sprintf((FI.x-xPos)*40,2),align->"right"); //17.05.02
+// ); // only ketjs //190503to
+ tmp="Setangle(" //no ketjs on
+ +format((TH.x-xPos)*20,5)+","
+format((FI.x-xPos)*40,5)+")";
GLIST=append(GLIST,tmp); //no ketjs off
THETA=(TH.x-xPos)*20*pi/180;
PHI=(FI.x-xPos)*40*pi/180; // 16.06.20until
- if(isselected(TH) % isselected(FI), // 17.05.18from
+ if(Ptselected(TH) % Ptselected(FI), //190505
if(length(Ch)>0,
ChNum=Ch_(length(Ch));
if(ChNum==0, ChNum=1);
@@ -138,8 +136,8 @@ Start3d(ptexception):=(
ChNum=1;
);
Ch=[0];
- );// 17.05.18to
- if(SUBSCR==1,
+ );
+ if(SUBSCR==1, // no ketjs on
xmn=SW.x+NE.x-SW.x;
xMx=NE.x+NE.x-SW.x;
ymn=SW.y;
@@ -148,18 +146,18 @@ Start3d(ptexception):=(
[xmn,ymn],[xMx,ymn]],color->[1,1,1]);
connect([[NE.x-SW.x,yMx],[NE.x-SW.x,ymn]],
color->[0.5,0.5,0.5]);
- );
+ ); // no ketjs off
// for Presentation //17.07.01from //no ketjs on
letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0];
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.01to //no ketjs off
+ ThinDense=0.1; //17.07.01to //no ketjs off
tmp=ptexception; //181106
if(!islist(tmp),tmp=[tmp]); //190209
- PTEXCEPTION=concat(PTEXCEPTION,tmp); //190209
+ PTEXCEPTION=concat(PTEXCEPTION,tmp); //190209
// if(!islist(tmp),PTEXCEPTION=[tmp],PTEXCEPTION=tmp);
- Ptseg3data(PTEXCEPTION); //16.08.23
+ Ptseg3data(PTEXCEPTION);//16.08.23
// PTEXCEPTION=ptexception; //180916 //190209[del]
);
////%Start3d end////
@@ -180,14 +178,14 @@ Setangle(theta,phi):=( //16.12.24
FI.x=phi/40+xPos;
// drawtext([xPos-0.8,yTh-0.1],text(theta)); //17.05.05
// drawtext([xPos-0.8,yPh-0.1],text(phi));
- tmp="Setangle("
+ tmp="Setangle(" // no ketjs on
+format(theta,5)+","+format(phi,5)+")";
- GLIST=append(GLIST,tmp);
- if(length(VLIST)==0, // 16.06.20
- tmp=remove(allpoints(),[NE,SW,TH,FI]);
- tmp4=remove(tmp,PTEXCEPTION); //180916
+ GLIST=append(GLIST,tmp); //no ketjs off
+ if(length(VLIST)==0, // 16.06.20
+ tmp=apply(allpoints(),#.name); //190505
+ tmp4=remove(tmp,PTEXCEPTION); //190329
forall(tmp4,pt,
- tmp1=text(pt);
+ tmp1=pt;
tmp=substring(tmp1,length(tmp1)-1,length(tmp1));
if(tmp!="z",
tmp=parse(tmp1+"z.xy"); //181028[2lines];
@@ -198,11 +196,11 @@ Setangle(theta,phi):=( //16.12.24
);
);
,
- if(isselected(NE) % isselected(SW),
- tmp=remove(allpoints(),[NE,SW,TH,FI]);
- tmp4=remove(tmp,PTEXCEPTION); //180916
+ if(Ptselected(NE) % Ptselected(SW), //190505
+ tmp4=apply(allpoints(),#.name); //190505
+ tmp4=remove(tmp4,PTEXCEPTION);
forall(tmp4,pt,
- tmp1=text(pt);
+ tmp1=pt;
tmp=substring(tmp1,length(tmp1)-1,length(tmp1));
if(tmp!="z",
tmp=select(VLIST,#_1==tmp1+"3d");
@@ -212,14 +210,14 @@ Setangle(theta,phi):=( //16.12.24
);
);
,
- tmp=remove(allpoints(),[NE,SW,TH,FI]);
+ tmp=apply(allpoints(),#.name); //190505
tmp4=remove(tmp,PTEXCEPTION); //180916
forall(tmp4,pt,
- tmp1=text(pt);
+ tmp1=pt;
tmp=substring(tmp1,length(tmp1)-1,length(tmp1));
if(tmp!="z",
tmp2=parse(tmp1+"z");
- if(isselected(pt) % isselected(tmp2),
+ if(Ptselected(pt) % Ptselected(tmp2),
Defvar(tmp1+"2d",pt.xy);
tmp=parse(tmp1+"z.xy"); //181028[2lines]
tmp=Xyzcoord(pt.xy,tmp);
@@ -228,14 +226,14 @@ Setangle(theta,phi):=( //16.12.24
);
);
);
- );
+ );
forall(Datalist3d(),#,
tmp1=replace(#,"3d","2d");
tmp2=Projpara(#,["nodata"]);
- tmp=tmp1+"="+textformat(tmp2,5);
+ tmp=tmp1+"="+textformat(tmp2,5)+";"; //190415
parse(tmp);
);
- Ptseg3data(PTEXCEPTION); //180916
+ Ptseg3data(PTEXCEPTION); //180916
);
////%Setangle end////
@@ -267,7 +265,7 @@ Angleselected():=IsAngle(); //180713
////%Angleselected end////
////%Isangle start////
-Isangle():=isselected(TH)%isselected(FI); //180517
+Isangle():=Ptselected(TH)%Ptselected(FI); //180517
////%Isangle end////
////%Changestyle3d start////
@@ -303,13 +301,13 @@ Dist3d(pt1,pt2):=(
if(islist(pt1),
p1=pt1;
,
- if(ispoint(pt1),p1=text(pt1),p1=pt1);
+ if(ispoint(pt1),p1=pt1.name,p1=pt1); //190505
p1=parse(p1+"3d");
);
if(islist(pt2),
p2=pt2;
,
- if(ispoint(pt2),p2=text(pt2),p2=pt2);
+ if(ispoint(pt2),p2=pt2.name,p2=pt2); //190505
p2=parse(p2+"3d");
);
sqrt((p2-p1)*(p2-p1));
@@ -417,8 +415,8 @@ Mainsubpt3d(pm,psv):=( //181027
);
////%Mainsubpt3d end////
-////%ProjCurve start////
-ProjCurve(crv):=(
+////%Projcurve start////
+Projcurve(crv):=(
//help:Projcurve("sl3d1");
regional(CurveL,Curve,Eps,AnsL,Out,sp,cp,st,,ct,ii,pt,
Xz,Yz,tmp,tmp1,tmp2);
@@ -469,7 +467,7 @@ ProjCurve(crv):=(
);
Out;
);
-////%ProjCurve end////
+////%Projcurve end////
////%Projpara start////
Projpara(ptdata):=Projpara(ptdata,[]);
@@ -513,7 +511,7 @@ Projpara(ptdata,optionsorg):=(
if(msgflg==1,//180602from
println("generate projparadata "+name2);
);//180602to
- tmp=name2+"="+textformat(ptL,5);
+ tmp=name2+"="+textformat(ptL,5)+";"; //190415
parse(tmp);
tmp=name2+"=Projpara("+name3+")";
GLIST=append(GLIST,tmp);
@@ -523,7 +521,7 @@ Projpara(ptdata,optionsorg):=(
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(color!=KCOLOR, //180904
Texcom("}");//180722
);
@@ -544,8 +542,8 @@ Projpara(ptdata,optionsorg):=(
);
////%Projpara end////
-////%InvparaptPp start////
-InvparaptPp(pt,pd):=(
+////%Invparaptpp start////
+Invparaptpp(pt,pd):=(
regional(Eps,fk,nfk,ph,fh,ah,bh,ak,bk,v1,v2,
nn,s0,t2,out,tmp,tmp1,tmp2,flg);
Eps=10^(-4);
@@ -580,7 +578,7 @@ InvparaptPp(pt,pd):=(
);
if(flg==0,
if(nfk>2,
- nn=floor(ph);
+ nn=re(floor(ph)); //190505
s0=ph-nn;
if(ph>Numptcrv(fh)-Eps,
out=[Ptend(fk),Numptcrv(fh)];
@@ -601,12 +599,12 @@ InvparaptPp(pt,pd):=(
);
out;
);
-////%InvparaptPp end////
+////%Invparaptpp end////
////%Invparapt start////
Invparapt(pt,pd):=(
regional(tmp);
- tmp=InvparaptPp(pt,pd);
+ tmp=Invparaptpp(pt,pd);
tmp_1;
);
////%Invparapt end////
@@ -625,7 +623,7 @@ Subgraph(name3,opcindy):=( //181029
);
sub2d=append(sub2d,tmp2);
);
- tmp=name+"="+Textformat(sub2d,5);
+ tmp=name+"="+Textformat(sub2d,5)+";";
parse(tmp);
GCLIST=append(GCLIST,[name,[0,1],opcindy]); //190127
sub2d;
@@ -639,7 +637,7 @@ Spaceline(Arg1,Arg2):=(
if(isstring(Arg1),
Spaceline(Arg1,Arg2,[]);
,
- tmp=text(Arg1);
+ tmp=Arg1.name; //190505
tmp=substring(tmp,1,length(tmp)-1);
name="-"+replace(tmp,",","");
Spaceline(name,Arg1,Arg2);
@@ -651,7 +649,8 @@ Spaceline(nm,ptlistorg,optionorg):=(
//help:Spaceline(options=["Msg=y(n)"]);
regional(name2,name3,options,Out,tmp,tmp1,tmp2,
opstr,opcindy,Ltype,Noflg,eqL,ptlist, Msg,color);
- ptlist=apply(ptlistorg,if(ispoint(#),parse(text(#)+"3d"),#)); // 16.02.10
+ ptlist=apply(ptlistorg,if(ispoint(#),parse(#.name+"3d"),#)); // 190505
+ ptlist=apply(ptlist,if(isstring(#),parse(#),#)); //190330
if(substring(nm,0,2)=="bz",
name2=replace(nm,"bz","bz2d");
name3=replace(nm,"bz","bz3d");
@@ -687,22 +686,22 @@ Spaceline(nm,ptlistorg,optionorg):=(
if(Msg==1,
println("generate Spaceline "+name3);
);
- tmp=name3+"="+ptlist;
+ tmp=name3+"="+Textformat(ptlist,6)+";"; //190330//190415
parse(tmp);
tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
+ tmp=name2+"="+Textformat(tmp1,5)+";"; //190415
parse(tmp);
tmp="[";
forall(ptlist, //17.07.13from
if(isstring(#),
tmp=tmp+#+",";
,
- tmp=tmp+textformat(#,5)+",";
+ tmp=tmp+Textformat(#,5)+",";
);
);
tmp=substring(tmp,0,length(tmp)-1)+"]";
- tmp=name3+"=Spaceline("+tmp+")"; //17.07.13until
-// tmp=name3+"=Spaceline("+textformat(ptlist,5)+")"; //17.05.24
+ tmp=name3+"=Spaceline("+tmp+")"; //17.07.13to
+// tmp=name3+"=Spaceline("+Textformat(ptlist,5)+")"; //17.05.24
GLIST=append(GLIST,tmp);
tmp=name2+"=Projpara("+name3+")";
GLIST=append(GLIST,tmp);
@@ -712,7 +711,7 @@ Spaceline(nm,ptlistorg,optionorg):=(
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(color!=KCOLOR, //180904
Texcom("}");//180722
);
@@ -720,9 +719,9 @@ Spaceline(nm,ptlistorg,optionorg):=(
if(Noflg==1,Ltype=0);
);
GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
- if(SUBSCR==1, // 15.02.11
+ if(SUBSCR==1, //no ketjs on// 15.02.11
Subgraph(name3,opcindy);
- );
+ ); //no ketjs off
);
ptlist;
);
@@ -864,10 +863,10 @@ Spacecurve(nm,funstr,variable,optionorg):=(
if(Msg==1,
println("generate Spacecurve "+name3);
);
- tmp=name3+"="+textformat(Out,5);
+ tmp=name3+"="+textformat(Out,5)+";"; //190415
parse(tmp);
tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
+ tmp=name2+"="+textformat(tmp1,5)+";"; //190415
parse(tmp);
tmp=name3+"=Spacecurve(Assign('"+funstr+"'),'"+variable+"'"+opstr+")";
GLIST=append(GLIST,tmp);
@@ -879,7 +878,7 @@ Spacecurve(nm,funstr,variable,optionorg):=(
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(color!=KCOLOR, //180904
Texcom("}");//180722
);
@@ -910,7 +909,7 @@ Partcrv3d(nm,pA,pB,PkLstr,options):=(
if(islist(pA),
tmp=pA;
,
- if(ispoint(pA),tmp=text(pA),tmp=pA);
+ if(ispoint(pA),tmp=pA.name,tmp=pA); //190505
tmp=parse(tmp+"3d");
);
p1=parapt(tmp);
@@ -922,7 +921,7 @@ Partcrv3d(nm,pA,pB,PkLstr,options):=(
if(islist(pB),
tmp=pB;
,
- if(ispoint(pB),tmp=text(pB),tmp=pB);
+ if(ispoint(pB),tmp=pB.name,tmp=pB); //190505
tmp=parse(tmp+"3d");
);
p2=parapt(tmp);
@@ -1001,10 +1000,10 @@ Joincrvs3d(nm,plotstrL,options):=(
);
if(Noflg<3,
println("generate Joincurves3d "+name3);
- tmp=name3+"="+textformat(PtL,5);
+ tmp=name3+"="+textformat(PtL,5)+";"; //190415
parse(tmp);
tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
+ tmp=name2+"="+textformat(tmp1,5)+";"; //190415
parse(tmp);
tmp=text(plotstrL);
tmp=substring(tmp,1,length(tmp)-1);
@@ -1018,7 +1017,7 @@ Joincrvs3d(nm,plotstrL,options):=(
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(color!=KCOLOR, //180904
Texcom("}");//180722
);
@@ -1040,13 +1039,14 @@ Joincrvs3d(nm,plotstrL,options):=(
////%Xyzax3data start////
Xyzax3data(nm,Xrange,Yrange,Zrange):=
Xyzax3data(nm,Xrange,Yrange,Zrange,[]);
-Xyzax3data(nm,Xrange,Yrange,Zrange,options):=(
+Xyzax3data(nm,Xrange,Yrange,Zrange,optionorg):=(
//help:Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]");
-//help:Xyzax3data(Options2=["a1","Osw"]);
- regional(name2,name3,Out,tmp,tmp1,tmp2,eqL,reL,strL,
- opstr,opcindy,Ltype,Noflg,Axname,Arrow,Origin,color);
+//help:Xyzax3data(Options2=["a1,18","Osw"]);
+ regional(name2,name3,Out,tmp,tmp1,tmp2,ops,eqL,reL,strL,msgflg,
+ options,opstr,opcindy,Ltype,Noflg,Axname,Arrow,Origin,color);
name2="ax2d"+nm;
name3="ax3d"+nm;
+ options=optionorg;
tmp=Divoptions(options);
Ltype=tmp_1;
Noflg=tmp_2;
@@ -1056,7 +1056,7 @@ Xyzax3data(nm,Xrange,Yrange,Zrange,options):=(
color=tmp_(length(tmp)-2);
opcindy=tmp_(length(tmp));
Axname=1;
- Arrow=0; // 16.08.14
+ Arrow=[]; // 190505
Origin=""; // 16.08.14
if(length(reL)>0,
Axname=reL_1;
@@ -1066,9 +1066,8 @@ Xyzax3data(nm,Xrange,Yrange,Zrange,options):=(
if(tmp1=="A",
tmp=substring(#,1,length(#));
if(length(tmp)>0,
- Arrow=parse(tmp);
- ,
- Arrow=1;
+ Arrow=tokenize(tmp,","); //190505
+ if(length(Arrow)==1,Arrow=append(Arrow,18));
);
);
if(tmp1=="O",
@@ -1084,7 +1083,18 @@ Xyzax3data(nm,Xrange,Yrange,Zrange,options):=(
);
);
);
- ); // 16.08.14until
+ ); // 16.08.14to
+ options=remove(options,reL);
+ options=remove(options,strL);
+ msgflg="Y"; //190506from
+ forall(eqL,
+ tmp=Strsplit(#,"=");
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="M",
+ msgflg=Toupper(substring(tmp_2,0,1));
+ options=remove(options,[#]);
+ );
+ ); //190506to
tmp1=indexof(Xrange,"=");
tmp=parse(substring(Xrange,tmp1,length(Xrange)));
Px=[tmp_1,0,0]; Qx=[tmp_2,0,0];
@@ -1094,16 +1104,26 @@ Xyzax3data(nm,Xrange,Yrange,Zrange,options):=(
tmp1=indexof(Zrange,"=");
tmp=parse(substring(Zrange,tmp1,length(Zrange)));
Pz=[0,0,tmp_1]; Qz=[0,0,tmp_2];
+ tmp=["nodisp","Msg=n"];
+ Spaceline("-axx3d"+nm,[Px,Qx],tmp);
+ Spaceline("-axy3d"+nm,[Py,Qy],tmp);
+ Spaceline("-axz3d"+nm,[Pz,Qz],tmp);
Out=[[Px,Qx],[Py,Qy],[Pz,Qz]];
if(Axname>0,
Xyzaxparaname(Xrange,Yrange,Zrange,[Axname]);
);
if(Noflg<3,
- println("generate axes "+name3);
- tmp=name3+"="+textformat(Out,5);
+ if(msgflg=="Y",
+ tmp="generate axes "+name3;
+ tmp=tmp+" : axx3d"+nm+",axy3d"+nm+",axz3d"+nm;
+ println(tmp);
+ );
+ tmp="["+"axx3d"+nm+","+"axy3d"+nm+",";
+ tmp=tmp+"axz3d"+nm+"]";
+ tmp=name3+"="+tmp;
parse(tmp);
tmp1=Projpara([name3],["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
+ tmp=name2+"="+textformat(tmp1,5)+";"; //190415
parse(tmp);
tmp=name3+"=Xyzax3data("+
Dq+Xrange+Dq+","+Dq+Yrange+Dq+","+Dq+Zrange+Dq+")";
@@ -1116,7 +1136,7 @@ Xyzax3data(nm,Xrange,Yrange,Zrange,options):=(
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(color!=KCOLOR, //180904
Texcom("}");//180722
);
@@ -1125,14 +1145,15 @@ Xyzax3data(nm,Xrange,Yrange,Zrange,options):=(
);
GCLIST=append(GCLIST,[name2,Ltype,opcindy]);
if(Noflg<1, // 16.08.14from
- if(Arrow>0,
+ if(length(Arrow)==2, //190505from
tmp1=Parapt(Px); tmp2=Parapt(Qx);
- Arrowhead(tmp2,tmp2-tmp1,[Arrow]);
+ ops=[Arrow_1,Arrow_2,"Line=n"];
+ Lightarrowdata("ax1",[tmp2,tmp2-tmp1],ops);
tmp1=Parapt(Py); tmp2=Parapt(Qy);
- Arrowhead(tmp2,tmp2-tmp1,[Arrow]);
+ Lightarrowdata("ax2",[tmp2,tmp2-tmp1],ops);
tmp1=Parapt(Pz); tmp2=Parapt(Qz);
- Arrowhead(tmp2,tmp2-tmp1,[Arrow]);
- );
+ Lightarrowdata("ax3",[tmp2,tmp2-tmp1],ops);
+ ); //190505to
if(length(Origin)>0,
Letter([Parapt([0,0,0]),Origin,"O"]);
);
@@ -1145,7 +1166,7 @@ Xyzax3data(nm,Xrange,Yrange,Zrange,options):=(
);
////%Xyzax3data end////
-////%Xyzax3paraname start////
+////%Xyzaxparaname start////
Xyzaxparaname(Xrange,Yrange,Zrange):=
Xyzaxparaname(Xrange,Yrange,Zrange,[]);
Xyzaxparaname(Xrange,Yrange,Zrange,options):=(
@@ -1189,7 +1210,7 @@ Xyzaxparaname(Xrange,Yrange,Zrange,options):=(
Expr(ch,"c",Zname);
);
);
-////%Xyzax3paraname end////
+////%Xyzaxparaname end////
////%Datalist3d start////
Datalist3d():=(
@@ -1267,10 +1288,10 @@ Embed(nm,Pd2str,funstr,varstr,options):=(
if(Noflg<3,
println("generate Embed "+name3);
if(length(Out)>0,
- tmp=name3+"="+textformat(Out,5);
+ tmp=name3+"="+textformat(Out,5)+";"; //190415
parse(tmp);
tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
+ tmp=name2+"="+textformat(tmp1,5)+";"; //190415
parse(tmp);
);
if(!islist(Pd2str),
@@ -1289,7 +1310,7 @@ Embed(nm,Pd2str,funstr,varstr,options):=(
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(color!=KCOLOR, //180904
Texcom("}");//180722
);
@@ -1433,10 +1454,10 @@ Rotatedata3d(nm,P3data,w1,w2,options):=(
if(length(Out)==1,Out=Out_1);
if(Noflg<3,
println("generate Rotatedata3d "+name3);
- tmp=name3+"="+textformat(Out,5);
+ tmp=name3+"="+textformat(Out,5)+";"; //190415
parse(tmp);
tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
+ tmp=name2+"="+textformat(tmp1,5)+";"; //190415
parse(tmp);
tmp=Textformat(P3data,5); // 17.12.23
tmp=RSform(tmp,1); //180602
@@ -1455,7 +1476,7 @@ Rotatedata3d(nm,P3data,w1,w2,options):=(
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(color!=KCOLOR, //180904
Texcom("}");//180722
);
@@ -1531,10 +1552,10 @@ Translatedata3d(nm,P3data,w1,options):=(
if(length(Out)==1,Out=Out_1);
if(Noflg<3,
println("generate Translatedata3d "+name3);
- tmp=name3+"="+textformat(Out,5);
+ tmp=name3+"="+textformat(Out,5)+";"; //190415
parse(tmp);
tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
+ tmp=name2+"="+textformat(tmp1,5)+";"; //190415
parse(tmp);
tmp=textformat(P3data,5); // 17.12.23
tmp=RSform(tmp,1); // 180602
@@ -1552,7 +1573,7 @@ Translatedata3d(nm,P3data,w1,options):=(
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(color!=KCOLOR, //180904
Texcom("}");//180722
);
@@ -1627,10 +1648,10 @@ Reflectdata3d(nm,P3data,vecL,options):=(
if(length(Out)==1,Out=Out_1);
if(Noflg<3,
println("generate Reflectdata3d "+name3);
- tmp=name3+"="+textformat(Out,5);
+ tmp=name3+"="+textformat(Out,5)+";"; //190415
parse(tmp);
tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+Textformat(tmp1,5);
+ tmp=name2+"="+Textformat(tmp1,5)+";"; //190415
parse(tmp);
tmp=Textformat(P3data,5); // 17.12.23
tmp=RSform(tmp,1); // 180602
@@ -1649,7 +1670,7 @@ Reflectdata3d(nm,P3data,vecL,options):=(
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(color!=KCOLOR, //180904
Texcom("}");//180722
);
@@ -1722,10 +1743,10 @@ Scaledata3d(nm,P3data,ratio,options):=(
if(length(Out)==1,Out=Out_1);
if(Noflg<3,
println("generate Scaledata3d "+name3);
- tmp=name3+"="+textformat(Out,5);
+ tmp=name3+"="+textformat(Out,5)+";"; //190415
parse(tmp);
tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+Textformat(tmp1,5);
+ tmp=name2+"="+Textformat(tmp1,5)+";"; //190415
parse(tmp);
tmp=Textformat(P3data,5); // 17.12.23
tmp=RSform(tmp,1); // 180602
@@ -1745,7 +1766,7 @@ Scaledata3d(nm,P3data,ratio,options):=(
if(color!=KCOLOR, //180904
Texcom("{");Com2nd("Setcolor("+color+")");//180722
);
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(color!=KCOLOR, //180904
Texcom("}");//180722
);
@@ -1771,9 +1792,9 @@ Xyzcoord(X,Y,ps):=(
);
////%Xyzcoord end////
-////%PutonCurve3d start////
-PutonCurve3d(name,pdstr):=(
-//help:PutonCurve3d("T","sc3d1");
+////%Putoncurve3d start////
+Putoncurve3d(name,pdstr):=(
+//help:Putoncurve3d("T","sc3d1");
regional(pt,pd2str,tmp,tmp1,tmp2);
pd2str=replace(pdstr,"3d","2d");
PutonCurve(name,pd2str);
@@ -1781,15 +1802,15 @@ PutonCurve3d(name,pdstr):=(
tmp=Nearestpt(pt,pd2str); // 15.03.13
tmp1=Paramoncurve(tmp_1,tmp_2,pd2str);
tmp="sub"+pd2str;
- tmp2=PointonCurve(tmp1,tmp);
+ tmp2=Pointoncurve(tmp1,tmp);
// pt=append(pt,tmp2_2); //181028[2lines]
pt=Xyzcoord(pt,tmp2); // 15.03.13
- tmp=name+"z.xy="+textformat(tmp2,5);
+ tmp=name+"z.xy="+textformat(tmp2,5)+";"; //190415
parse(tmp);
// VLIST=select(VLIST,#_1!=name+"3d");
Defvar(name+"3d",pt);
);
-////%PutonCurve3d end////
+////%Putoncurve3d end////
////%Mkpointlist start////
Mkpointlist():=Mkpointlist([]); //16.11.12
@@ -1799,7 +1820,7 @@ Mkpointlist(options):=( //181030
dp=pi/24;
mv=NE.x-SW.x;
Eps=10^(-4);
- pos=[NE.x+1,NE.y];
+ pos=[NE.x+1,NE.y+0.1];
worklist=Workprocess(); //181030
plist=select(worklist,length(#_3)!=2);
plist=apply(plist,#_1);
@@ -1820,9 +1841,9 @@ Mkpointlist(options):=( //181030
inspect(pt,"ptsize",3);
inspect(pt,"color",2);
inspect(pt,"textsize",TSIZE);
- ptz=text(pt)+"z";
+ ptz=pt.name+"z"; //190505
tmp=Finddef(pt);
- tmp=select(VLIST,#_1==text(pt)+"3d");
+ tmp=select(VLIST,#_1==pt.name+"3d"); //190505
if(length(tmp)==0,
tmp=parse(ptz); //181108from
if(ispoint(tmp),
@@ -1843,37 +1864,37 @@ Mkpointlist(options):=( //181030
pt3=Mainsubpt3d(pt.xy,parse(ptz+".xy"));
);
); //181028to
- Defvar(text(pt)+"3d",pt3);
- Defvar(text(pt)+"fix",0);
+ Defvar(pt.name+"3d",pt3); //190505
+ Defvar(pt.name+"fix",0); //190505
);
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");
+ if(Ptselected(pt),
+ if(parse(pt.name+"fix")!=1, //190505
+ tmp=select(VLIST,#_1==pt.name+"3d"); //190505
tmp1=tmp_1_2;
pt3=Mainsubpt3d(pt.xy,ptz.xy); //181029
- Putpoint(text(ptz),Parasubpt(pt3));
+ Putpoint(ptz.name,Parasubpt(pt3));
if(Norm(tmp1-pt3)>Eps,
- Defvar(text(pt)+"3d",pt3);
+ Defvar(pt.name+"3d",pt3); //190505
);
flg=1;
);
);
- if(isselected(ptz),//181108from
- tmp=select(VLIST,#_1==text(pt)+"3d");
+ if(Ptselected(ptz),//181108from
+ tmp=select(VLIST,#_1==pt.name+"3d"); //190505
tmp1=tmp_1_2;
tmp=Parasubpt(tmp1); //181108from
if(abs(cos(THETA))>Eps,
- tmp=text(ptz)+".x="+format(tmp_1,6);
+ tmp=tptz.name+".x="+format(tmp_1,6)+";"; //190505
parse(tmp);
tmp=Parapt([tmp1_1,tmp1_2,ptz.y]);
- Putpoint(text(pt),tmp);
+ Putpoint(pt.name,tmp); //190505
,
- tmp=text(ptz)+".y="+format(tmp_2,6);
+ tmp=ptz.name+".y="+format(tmp_2,6)+";"; //190505
parse(tmp);
if(abs(sin(PHI+dp))>abs(cos(PHI+dp)), //181108
tmp=-(ptz.x-mv-tmp1_2*cos(PHI+dp))/sin(PHI+dp);
@@ -1882,30 +1903,30 @@ Mkpointlist(options):=( //181030
tmp=(ptz.x-mv+tmp1_1*sin(PHI+dp))/cos(PHI+dp); //181109pm
tmp=Parapt([tmp1_1,tmp,tmp1_3]);
);
- Putpoint(text(pt),tmp);
+ Putpoint(pt.name,tmp); //190505
);
pt3=Mainsubpt3d(pt.xy,ptz.xy);
- Defvar(text(pt)+"3d",pt3);//181108to
+ Defvar(pt.name+"3d",pt3); //190505
flg=2;
);
- if(isselected(TH) % isselected(FI), //181029
- tmp=select(VLIST,#_1==text(pt)+"3d");
+ if(Ptselected(TH) % Ptselected(FI), //181029
+ tmp=select(VLIST,#_1==pt.name+"3d"); //190505
if(length(tmp)>0, //17.10.07
tmp1=Parapt(tmp_1_2);
- Putpoint(text(pt),tmp1); //181029
+ Putpoint(pt.name,tmp1); //190505
tmp2=Parasubpt(tmp_1_2);//181027[2lines]
- Putpoint(text(ptz),tmp2); //181029
+ Putpoint(ptz.name,tmp2); //190505
flg=3;
); //17.10.07
);
if(flg==0, //181030from
pt3=Mainsubpt3d(pt.xy,ptz.xy);
- Defvar(text(pt)+"3d",pt3);
+ Defvar(pt.name+"3d",pt3); //190505
); //181030to
- if(isselected(pt) % isselected(ptz),
- drawtext(pos,text(pt3));
+ if(Ptselected(pt) % Ptselected(ptz),
+ drawtext(pos,pt3.xy,size->12); // no ketjs //190505
);
- if(!contains(["p","q"],text(pt)),
+ if(!contains(["p","q"],pt.name), //190505
ptL=append(ptL,pt);
);
);
@@ -1944,14 +1965,16 @@ Mkseg3d(options):=(
);
);
);
- println("generate totally "+name);
+ if(length(parse(name))>0, //190401
+ println("generate totally "+name);
+ );
if(length(segL)>0, // 15.03.06
strg=substring(strg,0,length(strg)-1)+")";
if(Noflg<3,
GLIST=append(GLIST,strg);
);
tmp1=apply(segL,Dq+#+Dq); //15.03.02
- tmp=name+"="+text(tmp1);
+ tmp=name+"="+tmp1.name; //190505
parse(tmp);
);
segL;
@@ -1963,36 +1986,37 @@ Ptseg3data():=Ptseg3data([]);
//help:Ptseg3data();
//help:Ptseg3data([A,B]);
Ptseg3data(options):=(
- regional(pt,pt3,plist,tmp,tmp1,tmp2);
- if(isselected(TH) % isselected(FI),
- tmp=remove(allpoints(),[NE,SW,TH,FI]);
- tmp=remove(tmp,options); //16.11.12
- tmp=apply(tmp,text(#));
- plist=select(tmp,substring(#,length(#)-1,length(#))!="z");
+ regional(pt,ptz,pt3,plist,plistz,tmp,tmp1,tmp2);
+ tmp=remove(allpoints(),options);
+ tmp=remove(tmp,[SW,NE,TH,FI]);
+ plist=select(tmp,indexof(#.name,"z")==0);
+ plistz=select(tmp,indexof(#.name,"z")>0);
+ if(Ptselected(TH) % Ptselected(FI),
forall(plist,pt,
- tmp1=text(pt);
- tmp=select(VLIST,#_1==tmp1+"3d"); //17.10.07
+ tmp=select(plistz,#.name==pt.name+"z");
+ if(length(tmp)>0,
+ ptz=tmp_1;
+ ,
+ ptz=[];
+ );
+ tmp=select(VLIST,#_1==pt.name+"3d"); //190506
if(length(tmp)>0,
pt3=tmp_1_2;
- tmp=tmp1+".xy="+Textformat(Parapt(pt3),6);//181107
- parse(tmp);
- if(SUBSCR==1,
- tmp=tmp1+"z"+".xy="+Textformat(Parasubpt(pt3),6);//181107
- parse(tmp);
- );
+ pt.xy=Parapt(pt3);
+ ptz.xy=Parasubpt(pt3);
,
- tmp=Mainsubpt3d(parse(pt+".xy"),parse(tmp1+"z.xy")); //181107[2lines]
- Defvar(tmp1+"3d",tmp);
+ pt3=Mainsubpt3d(pt.xy,ptz.xy); //181107[2lines]
+ Defvar(pt+"3d",pt3);
);
);
,
Mkpointlist(options); // 16.12.18
);
- forall(alllines(),
+ forall(alllines(), // no ketjs on
#.color=[0.5,0.5,1];
);
SEG3dlist=Mkseg3d(options);
- SEG3dlist;
+ SEG3dlist; // no ketjs off
);
////%Ptseg3data end////
@@ -2027,11 +2051,11 @@ Putonseg3d(name,pt1,pt2,options):=(
inspect(parse(name+"z"),"color",3);
inspect(parse(name+"z"),"textsize",TSIZEZ);
if(ispoint(pt1),
- pn1=text(pt1);
- pn2=text(pt2);
+ pn1=pt1.name; //190505
+ pn2=pt2.name; //190505
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);
+ tmp1=replace(tmp1,"PB",pn2)+";";
parse(tmp1);
,
pn1=Textformat(Parapt(pt1),5); //181030from
@@ -2042,7 +2066,7 @@ Putonseg3d(name,pt1,pt2,options):=(
pn1=Textformat(Parasubpt(pt1),5); //181030from
pn2=Textformat(Parasubpt(pt2),5);
tmp1=replace(tmp1,"PAs",pn1);
- tmp1=replace(tmp1,"PBs",pn2);
+ tmp1=replace(tmp1,"PBs",pn2)+";"; //190415
parse(tmp1);
);
tmp1=parse(name+".xy"); //181028[3lines]
@@ -2125,7 +2149,7 @@ Fixpoint3d(ptlist):=(
pt2=Parapt(pt3);
tmp1=textformat(pt2_1,5);
tmp2=textformat(pt2_2,5);
- tmp=name+".xy=["+tmp1+","+tmp2+"]";
+ tmp=name+".xy=["+tmp1+","+tmp2+"];";
parse(tmp);
tmp1=name+".x+NE.x-SW.x";
tmp2=textformat(pt3_3,5);
@@ -2151,7 +2175,7 @@ Letter3d(dtlist,options):=(
forall(1..nall,
jj=#*3-2;
tmp=dt_jj;
- if(ispoint(tmp),tmp=parse(text(tmp)+"3d"));
+ if(ispoint(tmp),tmp=parse(tmp.name+"3d")); //190505
dt_jj=Parapt(tmp);
);
Letter(dt,options);
@@ -2175,7 +2199,7 @@ Expr3d(dtlist,options):=(
forall(1..nall,
jj=#*3-2;
tmp=dt_jj;
- if(ispoint(tmp),tmp=parse(text(tmp)+"3d"));
+ if(ispoint(tmp),tmp=parse(tmp.name+"3d")); //190505
dt_jj=Parapt(tmp);
);
Expr(dt,options);
@@ -2298,10 +2322,10 @@ Drawpoint3d(pt3,options):=(
opcindy=tmp_(length(tmp));
if(Measuredepth(pt3)==0,ptL=[pt3],ptL=pt3);
forall(ptL,
- tmp="draw("+Textformat(Parapt(#),6)+opcindy+")";
+ tmp="draw("+Textformat(Parapt(#),6)+opcindy+");";
parse(tmp);
if(SUBSCR==1,
- tmp="draw("+Textformat(Parasubpt(#),6)+opcindy+")";
+ tmp="draw("+Textformat(Parasubpt(#),6)+opcindy+");";
parse(tmp);
);
);
@@ -2316,7 +2340,7 @@ Pointdata3d(nm,pt3,options):=( //181017from
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);
+ tmp="pt3d"+nm+"="+format(pt3L,6)+";"; //190415
parse(tmp);
); //181017to
////%Pointdata3d end////
@@ -2341,8 +2365,8 @@ IntersectsgpL(name,sgstr,pLstr):=
IntersectsgpL(name,sgstr,pLstr,["ie"]);
IntersectsgpL(name,sgstr,pLstr,optionsorg):=(
//help:IntersectsgpL("R","P-Q","A-B-C");
-//help:IntersectsgpL("",[p1,p2],[p3,p4,p5]);
-//help:IntersectsgpL(options=["draw(put)","ie","Screen=n"+pointoptions]);
+//help:IntersectsgpL("pR","pP-pQ","A-B-C");
+//help:IntersectsgpL(options=["draw(put)","ie","Screen=n"+pointoptions,"Color="]);
regional(options,eqL, strL,ptflg,out,pP,pQ,pA,pB,pC,pH,pK,pR,tseg,tt,ss,Eps,
flg,scrflg,nvec,tmp,tmp1,tmp2,tmp3,tmp4);
options=optionsorg; //181026from
@@ -2439,9 +2463,14 @@ IntersectsgpL(name,sgstr,pLstr,optionsorg):=(
if(tmp1&tmp2&(scrflg=="Y"), //181031
if(ptflg_1=="P", //181025
Putpoint3d([name,pR],"fix");
-// Fixpoint3d([name,pR]); //190114
,
Drawpoint3d(pR,options);
+ tmp=name; //190401from
+ if(indexof(name,"3d")==0,
+ tmp=name+"3d";
+ );
+ tmp=tmp+"="+Textformat(pR,6)+";"; //190415
+ parse(tmp); //190401to
);
);
,
@@ -2517,10 +2546,10 @@ Bezier3(nm,ptlistorg,ctrlistorg,options):=( //17.10.08 greatly changed
);
if(Noflg<3,
println("generate Beziercurve "+name3);
- tmp=name3+"="+tmp1;
+ tmp=name3+"="+tmp1+";"; //190415
parse(tmp);
tmp1=Projpara(name3,["nodata"]);
- tmp=name2+"="+textformat(tmp1,5);
+ tmp=name2+"="+textformat(tmp1,5)+";"; //190415
parse(tmp);
ptlist=apply(ptlistorg,#+"3d");
ptlist=RSform(text(ptlist),1);
@@ -2539,7 +2568,7 @@ Bezier3(nm,ptlistorg,ctrlistorg,options):=( //17.10.08 greatly changed
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);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
,
if(Noflg==1,Ltype=0);
@@ -2606,7 +2635,7 @@ Mkbezierptcrv3(ptdata,options):=( //17.10.08 greatly changed
Eps=10^(-4);
pos=[NE.x+1,NE.y];
Out=[];
- tmp=floor((BezierNumber3-1)/26);// 15.02.23 from
+ tmp=re(floor((BezierNumber3-1)/26)); //190505 // 15.02.23 from
if(tmp==0,tmp="",tmp=text(tmp));
tmp2=mod(BezierNumber3,26);
if(tmp2==0,tmp2=26);
@@ -2848,7 +2877,7 @@ Mkobjfile(path,fnameorg,objL):=(
forall(vtx,tmp1,
tmp2=tmp1;
if(ispoint(tmp1),
- tmp2=parse(text(tmp1)+"3d");
+ tmp2=parse(tmp1.name+"3d"); //190505
);
tmp="v "+format(tmp2_1,5)+" "+format(tmp2_2,5)+" "+format(tmp2_3,5);
println(SCEOUTPUT,tmp);
@@ -2866,14 +2895,20 @@ Mkobjfile(path,fnameorg,objL):=(
); //end of skip
+////%VertexEdgeFace start//// //190502
+VertexEdgeFace(nm,vfnL):=Vertexedgeface(nm,vfnL,[]);
+VertexEdgeFace(nm,vfnLorg,optionorg):=Vertexedgeface(nm,vfnLorg,optionorg);
////%VertexEdgeFace start////
-VertexEdgeFace(nm,vfnL):=VertexEdgeFace(nm,vfnL,[]); // 16.02.10
-VertexEdgeFace(nm,vfnLorg,optionorg):=(
-//help:VertexEdgeFace("1",[vL,fnL]);
-//help:VertexEdgeFace("1",["A","B","C"]);
-//help:VertexEdgeFace(options=["Pt=fix","Vtx=n(y)","Edg=n(y)"]);
- regional(name3,namev,namee,namef,vfnL,options,Noflg,eqL,strL,
- vL,eL,enL,face,edge,vtx,vname,fixflg,vtxflg, edgflg,dispflg,tmp,tmp1,tmp2);
+
+////%Vertexedgeface start////
+Vertexedgeface(nm,vfnL):=Vertexedgeface(nm,vfnL,[]); // 16.02.10
+Vertexedgeface(nm,vfnLorg,optionorg):=(
+//help:Vertexedgeface("1",[vL,fnL]);
+//help:Vertexedgeface("1",["A","B","C"]);
+//help:Vertexedgeface(options=["Vtx=n(y)" ',"Pt=fix") ,"Edg=n(y)","Label=8(/0)"]);
+ regional(name3,namev,namee,namef,vfnL,options,Noflg,eqL,strL, Lsize,msgflg,
+ Eps,vL,eL,enL,face,edge,vtx,vname,fixflg,vtxflg, edgflg,dispflg,tmp,tmp1,tmp2);
+ Eps=10^(-5);
name3="phvef"+nm;
namev="phv3d"+nm;
namee="phe3d"+nm;
@@ -2891,9 +2926,11 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
eqL=tmp_5;
strL=tmp_7;
fixflg=1;
- vtxflg=0; //180905
- edgflg=0;
+ vtxflg="N"; //180905
+ edgflg="N";
dispflg=1; //181106
+ Lsize="8"; //190331
+ msgflg="Y"; //190506
forall(eqL,
tmp=Strsplit(#,"=");
tmp1=Toupper(substring(tmp_1,0,1));
@@ -2903,23 +2940,22 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
options=remove(options,[#]);
);
if(tmp1=="V", //180905from
- if((tmp2=="Y")%(tmp2==G), //181107
- vtxflg=1;
- );
+ vtxflg=tmp2;
options=remove(options,[#]);
); //180905to
if(tmp1=="E",
- if((tmp2=="Y")%(tmp2=="G"),//181107[2lines]
- if(vtxflg==1,edgflg=1);
- );
+ edgflg=tmp2;
options=remove(options,[#]);
);
- if(tmp1=="D", //181106from
- if(substring(tmp2,0,1)=="N",
- dispflg=0; vtxflg=0; edgflg=0;
- );
+ if(tmp1=="L", //190331from
+ Lsize=tmp_2;
+ if(Lsize=="0",dispflg=0); //190502
+ options=remove(options,[#]);
+ ); //190331to
+ if(tmp1=="M", //190506from
+ msgflg=Toupper(substring(tmp_2,0,1));
options=remove(options,[#]);
- ); //181106to
+ ); //190506to
);
forall(strL,
if(Toupper(#)=="FREE",
@@ -2927,30 +2963,39 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
options=remove(options,[#]);
);
);
+ tmp=select(allpoints(),indexof(#.name,"z")==0); //190506from
+ tmp1=remove(tmp,[SW,NE,TH,FI]);
vL=[];
forall(1..length(vfnL_1),
vtx=vfnL_1_#; // 16.02.10 from
if(isstring(vtx),vtx=parse(vtx)); // 16.06.19
if(ispoint(vtx),
- tmp=parse(text(vtx)+"3d");
- vname=text(vtx);
+ tmp=parse(vtx.name+"3d"); //190506
+ vname=vtx.name;
,
- vname="V"+nm+text(#); //181212
- if(vtxflg==1, //180905
+ tmp=select(tmp1,|#.xy-Parapt(vtx)|<Eps);
+ if(length(tmp)>0,
+ tmp=tmp_1;
+ vname=tmp.name;
+ ,
+ vname="V"+nm+text(#); //181212
+ ); //190506to
+ if(vtxflg=="Y",
if(fixflg==1,
Putpoint3d([vname,vtx],"fix");
,
Putpoint3d([vname,vtx]);
);
- , //180905from
- tmp=vname+"3d="+format(vtx,6);
+ ,
+ tmp=vname+"3d="+format(vtx,6)+";"; //190415
parse(tmp);
Defvar(vname+"3d",parse(vname+"3d"));
- tmp=vname+"2d=Parapt("+vname+"3d)";
+ tmp=vname+"2d=Parapt("+vname+"3d);"; //190415
parse(tmp);
Defvar(vname+"2d",parse(vname+"2d"));
if(dispflg==1, //181106
- drawtext(parse(vname+"2d"),vname,size->8); //190128
+ tmp="drawtext(parse(vname+"+Dqq("2d")+"),vname,size->"; //190331
+ parse(tmp+Lsize+");"); //190331
draw(parse(vname+"2d"),pointsize->3,color->[0,1,0]); //190128
);
); //180905to
@@ -2980,7 +3025,7 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
if(Noflg<3,
enL=[];
forall(eL,edge,
- if(edgflg==0,
+ if(edgflg=="N",
if(Noflg<2,
tmp1=edge_1;//parse(edge_1);
tmp2=edge_2;//parse(edge_2);
@@ -3007,17 +3052,16 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
);
);
if(Noflg<2,
- println("generate "+name3);
- println(" generate totally "+namee);
- println(" generate vertexes "+namev);
- println(" generate faces "+namef);
+ if(msgflg=="Y",
+ println("generate "+namev+","+namee+","+namef);
+ );
);
tmp1="";
forall(enL,
tmp1=tmp1+Dq+#+Dq+",";
);
tmp1=substring(tmp1,0,length(tmp1)-1);
- tmp=namee+"=["+tmp1+"]";
+ tmp=namee+"=["+tmp1+"];"; //190415
parse(tmp);
tmp=namee+"=list("+tmp1+")";
tmp=replace(tmp,Dq,"");
@@ -3025,21 +3069,21 @@ VertexEdgeFace(nm,vfnLorg,optionorg):=(
tmp1=apply(vL,Dq+#+"3d"+Dq);
tmp1=text(tmp1);
tmp1=substring(tmp1,1,length(tmp1)-1);
- tmp=namev+"=["+tmp1+"]";
+ tmp=namev+"=["+tmp1+"];"; //190415
parse(tmp);
tmp1=replace(tmp1,Dq,"");
tmp=namev+"=list("+tmp1+")";
GLIST=append(GLIST,tmp);
- tmp1=text(vfnL_2);
+ tmp1=Textformat(vfnL_2,6);
tmp1=substring(tmp1,1,length(tmp1)-1);
- tmp=namef+"=["+tmp1+"]";
+ tmp=namef+"=["+tmp1+"];";
parse(tmp);
tmp=namef+"=list("+tmp1+")";
GLIST=append(GLIST,tmp);
);
[namev,namee,namef];
);
-////%VertexEdgeFace end////
+////%Vertexedgeface end////
////%Phparadata start////
Phparadata(nm,nmvf):=(
@@ -3122,7 +3166,7 @@ Phparadata(nm,nmvf,vfL,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);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
,
if(Noflg==1,Ltype=0);
@@ -3177,7 +3221,7 @@ Nohiddenseg(seg,rng,triang,Eps):=(
ss1=Parapt(sg1);
ss2=Parapt(sg2);
if(|ss2-ss1|>Eps & abs(Crossprod(pB-pA,pC-pA))>Eps,
- tmp=IntersectcrvsPp([ss1,ss2],[pA,pB,pC,pA]);
+ tmp=Intersectcrvspp([ss1,ss2],[pA,pB,pC,pA]);
parL=apply(tmp,#_2-1);
parL=sort(parL);
if(length(parL)==0,
@@ -3221,7 +3265,7 @@ Nohiddenseg(seg,rng,triang,Eps):=(
sghid=[parL_(#-1),parL_#];
tmp1=ss1+sghid_1*(ss2-ss1);
tmp2=ss1+sghid_2*(ss2-ss1);
- tmp=IntersectcrvsPp([tmp1,tmp2],[pA,pB,pC,pA]);
+ tmp=Intersectcrvspp([tmp1,tmp2],[pA,pB,pC,pA]);
if(length(tmp)<2,
veB=pB-pA;
veC=pC-pA;
@@ -3281,10 +3325,8 @@ Nohiddenseg(seg,rng,triang,Eps):=(
////%Nohiddenseg end////
////%Nohiddensegs start////
-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
+Nohiddensegs(seg,range,face,Eps):=( //190331
+ regional(rng,vtx,out,ra,rb,tmp,tmp1,tmp2);
rng=range;
out=rng;
forall(2..(length(face)-1),vtx,
@@ -3322,128 +3364,106 @@ Nohiddensegs(seg,range,faceno,vtxL,Eps):=(
////%Nohiddensegs end////
////%Nohiddenbyfaces start////
-Nohiddenbyfaces(nm,facestr):=
- Nohiddenbyfaces(nm,Datalist3d(),facestr,[],["do"]);
-Nohiddenbyfaces(nm,Arg1,Arg2):=(
- regional(segstr,facestr,options);
- if(islist(Arg2),
- segstr=Datalist3d();
- facestr=Arg1;
- options=Arg2;
- ,
- segstr=Arg1;
- facestr=Arg2;
+Nohiddenbyfaces(nm,faceL):=
+ Nohiddenbyfaces(nm,Datalist3d(),faceL,[],["do"]);
+Nohiddenbyfaces(nm,Arg1,Arg2):=( //190331
+ regional(tmp1,tmp2,tmp3,segL,faceL,options);
+ tmp1=select(Arg2,indexof(#,"=")>0); //190401from
+ tmp2=select(Arg2,indexof(#,",")>0);
+ tmp3=select(Arg2,length(#)<=2);
+ if(length(tmp1)+length(tmp2)+length(tmp3)==0, //190401to
+ segL=Arg1;
+ faceL=Arg2;
options=[];
- );
- Nohiddenbyfaces(nm,segstr,facestr,options,["do"]);
-);
-Nohiddenbyfaces(nm,Arg1,Arg2,Arg3):=(
- regional(segstr,facestr,options,optionsh);
- if(islist(Arg2),
- segstr=Datalist3d();
- facestr=Arg1;
- options=Arg2;
- optionsh=Arg3;
- ,
- segstr=Arg1;
- facestr=Arg2;
- options=Arg3;
- optionsh=["do"];
- );
- Nohiddenbyfaces(nm,segstr,facestr,options,optionsh); // 16.02.21
-);
-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);
- );
,
+ segL=Datalist3d();
faceL=Arg1;
- vtxL=Arg2;
- options=Arg3;
- optionsh=[];
+ options=Arg2;
);
- Nohiddenbyfaces(nm,segstr,faceL,vtxL,options,optionsh);
+ Nohiddenbyfaces(nm,segL,faceL,options,["do"]);
);
-Nohiddenbyfaces(nm,segstr,faceL,vtxL,optionorg,optionsh):=(
-//help:Nohiddenbyfaces("1","phf3d1");
-//help:Nohiddenbyfaces("1","ax3d","phf3d1");
-//help:Nohiddenbyfaces("1","ax3d",phf3d1,phv3d1);
-//help:Nohiddenbyfaces(options1=["dr","Eps=10^(-2)"]);
-//help:Nohiddenbyfaces(options2=["do"]);
- regional(Eps,namen,nameh,options,segL,rng,seg,face,
- ctr,tmp,tmp1,tmp2,Ltype,Noflg,eqL,color,opstr,opcindy,frnL,frhL);
- Eps=10^(-2);
+//Nohiddenbyfaces(nm,segL,faceL,options):=( //190331
+Nohiddenbyfaces(nm,Arg1,Arg2,Arg3):=( //190413from
+ if(islist(Arg1),
+ Nohiddenbyfaces(nm,Arg1,Arg2,Arg3,["do"]);
+ ,
+ Nohiddenbyfaces(nm,Datalist3d(),Arg1,Arg2,Arg3);
+ );
+); //190413to
+Nohiddenbyfaces(nm,segLorg,faceLorg,optionorg,optionsh):=(//190331
+//help:Nohiddenbyfaces("1",["phf3d1"]);
+//help:Nohiddenbyfaces("1",["ax3d"],["phf3d1"]);
+//help:Nohiddenbyfaces("1",["ax3d","phe3d1"],["phv3d1"]);
+//help:Nohiddenbyfaces(options=["dr","Eps=10^(-2)"]);
+//help:Nohiddenbyfaces(optionsh=["do"]);
+ regional(Eps,namen,nameh,options,segL,faceL,rng,vtxL,msgflg,
+ ctr,tmp,tmp1,tmp2,tmp3,tmp4,Ltype,Noflg,eqL,color,frnL,frhL);
namen="frn"+nm;
nameh="frh"+nm;
- if(isstring(segstr),
- tmp=parse(segstr);//180714from
- if(islist(tmp),
- if(isstring(tmp_1),
- segL=tmp;
- ,
- segL=[segstr];
- );
- );//180714to
- ,
- segL=segstr;
- );
- tmp2=[]; // 16.02.29 from
- forall(segL,seg,
- tmp=replace(seg,"3d","2d");
- tmp1=select(GCLIST,#_1==tmp);
- tmp1=tmp1_1;
- if(tmp1_2_1==0, //190127
- tmp2=append(tmp2,seg);
- );
- );
- segL=tmp2;
- Changestyle3d(segL,["nodisp"]); // 16.02.29 until
- if(islist(segL),
- if(isstring(segL_1),
- segL=apply(segL,parse(#));
- );
- );
- tmp1=Flattenlist(segL); //180816from
- segL=[];
- forall(tmp1,tmp2,
- forall(1..(length(tmp2)-1),
- segL=append(segL,[tmp2_#,tmp2_(#+1)]);
- );
- ); //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));
+ Eps=10^(-2);
+ msgflg="Y";
forall(eqL, //180815from
tmp=Strsplit(#,"=");
- tmp1=Toupper(substring(tmp_1,0,1)); //181111
- if(substring(tmp1,0,3)=="E",
+ tmp1=Toupper(substring(tmp_1,0,1));
+ if(tmp1=="E",
Eps=parse(tmp_2);
options=remove(options,[#]);
);
- );//180815to
+ if(tmp1=="M", //190506from
+ msgflg=Toupper(substring(tmp_2,0,1));
+ options=remove(options,[#]);
+ ); //190506to
+ );//180815to
+ tmp1=segLorg; //190331from
+ if(!islist(tmp1),tmp1=[tmp1]);
+ Changestyle3d(tmp1,["nodisp"]);
+ segL=[];
+ forall(tmp1,tmp4, // 190401[seg=>tmp4]
+ if(isstring(tmp4),
+ tmp3=parse(tmp4);
+ if(MeasureDepth(tmp3)==1,tmp3=[tmp3]); //190401
+ tmp2=[];
+ forall(tmp3,
+ if(isstring(#),tmp=parse(#),tmp=#);
+ tmp2=append(tmp2,tmp);
+ );
+ ,
+ tmp2=[#];
+ );
+ segL=concat(segL,tmp2);
+ );
+ tmp1=faceLorg;
+ if(!islist(tmp1),tmp1=[tmp1]);
+ faceL=[];
+ forall(tmp1,tmp4, // 190401[face=>tmp4]
+ if(isstring(tmp4),
+ tmp2=parse(tmp4);
+ if(indexof(tmp4,"phf")>0,
+ tmp=replace(tmp4,"phf","phv");
+ vtx=parse(tmp);
+ vtx=apply(vtx,parse(#));
+ tmp2=apply(tmp2,vtx_#);
+ ,
+ tmp2=[tmp2]; //190401
+ );
+ ,
+ tmp2=tmp4;
+ );
+ faceL=concat(faceL,tmp2);
+ ); //190331to
ctr=1;
frnL=[];
frhL=[];
forall(segL,seg,
rng=[0,1];
forall(faceL,face,
- rng=Nohiddensegs(seg,rng,face,vtxL,Eps);
+ rng=Nohiddensegs(seg,rng,face,Eps);
);
forall(1..length(rng)/2,
tmp=rng_(2*#-1);
@@ -3484,13 +3504,14 @@ Nohiddenbyfaces(nm,segstr,faceL,vtxL,optionorg,optionsh):=(
);
);
tmp1=apply(frnL,Dq+#+Dq);
- tmp="frn3d"+nm+"="+text(tmp1);
+ tmp="frn3d"+nm+"="+text(tmp1)+";"; //190415
parse(tmp);
- println(" generate totally "+"frn3d"+nm);
tmp1=apply(frhL,Dq+#+Dq);
- tmp="frh3d"+nm+"="+text(tmp1);
+ tmp="frh3d"+nm+"="+text(tmp1)+";"; //190415
parse(tmp);
- println(" generate totally "+"frh3d"+nm);
+ if(msgflg=="Y",
+ println("generate "+"frn3d"+nm+",frh3d"+nm+""); //190331
+ );
[frnL,frhL]; //181106
);
////%Nohiddenbyfaces end////
@@ -3550,7 +3571,7 @@ Faceremovaldata(nm,vfdata,crvdata,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);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
,
if(Noflg==1,Ltype=0);
@@ -3769,7 +3790,7 @@ Sf3data(nm,funstr,var1org,var2org,optionorg):=(
tmp2=tmp2+Dq+#+Dq+",";
);
tmp2=substring(tmp2,0,length(tmp2)-1);
- tmp="sf3d"+nm+"=[["+tmp1+"],["+tmp2+"]]";
+ tmp="sf3d"+nm+"=[["+tmp1+"],["+tmp2+"]];"; //190415
parse(tmp);
);
[sfdtuL,sfdtvL];
@@ -4393,7 +4414,7 @@ IntersectcrvsfR(nm,crvstr,fdorg,bdyeq,optionorg):=(
ReadOutData(fname);
);
println("generate "+name);
- parse(name);
+ parse(name+";"); //190415
);
////%IntersectcrvsfR end////
@@ -4498,6 +4519,8 @@ SfcutparadataR(nm,eqstrorg,sf,fdorg,optionorg,optionsh):=(
);
////%SfcutparadataR end////
+////////////// current skeleton 2018.01.04 ////////////////
+
////%Skeletonparadata start////
Skeletonparadata(nm):=Skeletondatacindy(nm,[]);
Skeletonparadata(nm,options):=Skeletondatacindy(nm,options);
@@ -4506,8 +4529,7 @@ Skeletonparadata(nm,pltdata1org,pltdata2org,options):=
Skeletondatacindy(nm,pltdata1org,pltdata2org,options);
////%Skeletonparadata end////
-////////////// new skeleton 2018.01.04 not completed and slow////////////////
-
+////%Skeletondatacindy start////
Skeletondatacindy(nm):=Skeletondatacindy(nm,[]);
Skeletondatacindy(nm,options):=(
regional(tmp);
@@ -4516,225 +4538,27 @@ Skeletondatacindy(nm,options):=(
);
Skeletondatacindy(nm,pltdata1,pltdata2):=
Skeletondatacindy(nm,pltdata1,pltdata2,[]);
-Skeletondatacindy(nm,pltdata1org,pltdata2org,options):=(
+Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
//help:Skeletonparadata("1");
//help:Skeletonparadata("1",[pdata1,pdata2],[pdata3]);
-//help:Skeletondata(options2=[1(width)]);
- regional(Eps,Eps2,name2,name3,Ltype,Noflg,reL,opcindy,color,
- Data,Out,ObjL,Plt3L,Rr,pltdata1,pltdata2,Plt2L,ObjL,ii,Data,
- Obj3,jj,Gd,PtD,size,tmp,tmp1,tmp2);
- name2="sk2d"+nm;
- name3="sk3d"+nm;
- pltdata1=[];// 16.01.31
- forall(pltdata1org,tmp1,
- tmp=parse(tmp1);
- pltdata1=append(pltdata1,tmp);
- );
- pltdata2=[];// 16.01.31
- forall(pltdata2org,tmp1,
- tmp=parse(tmp1);
- pltdata2=append(pltdata2,tmp);
- );
- tmp=Divoptions(options);
- Ltype=tmp_1;
- Noflg=tmp_2;
- reL=tmp_6; //16.02.28
- color=tmp_(length(tmp)-2);
- opcindy=tmp_(length(tmp));
- Rr=0.15*1000/2.54/MilliIn;
- size=1;
- Eps2=0.05;
- if(length(reL)>0, //16.02.28
- size=reL_1;
- Rr=size*Rr;
- if(length(reL)>1,Eps2=reL_2);
- );
- Eps=10^(-4);
- ObjL=Flattenlist(pltdata1);
- PltL=Flattenlist(pltdata2);
- Data=Makeskeletondata(ObjL,PltL,Rr);
- Out=select(Data,length(Projcurve(#))>0);
- Out=Flattenlist(Out);
- tmp1=apply(Out,textformat(#,5));
- tmp=name3+"="+tmp1;
- parse(tmp);
- tmp=name2+"=Projcurve("+name3+");";
- parse(tmp);
- Changestyle3d(pltdata1org,["nodisp"]);
- if(Noflg<3,
- println("generate skeleton :"+name3);
- tmp1=text(pltdata1org);
- tmp1="list("+substring(tmp1,1,length(tmp1)-1)+")";
- tmp2=text(pltdata2org);
- tmp2="list("+substring(tmp2,1,length(tmp2)-1)+")";
- tmp=name3+"=Skeletonpara3data("+tmp1+","+tmp2+",";
- tmp=tmp+text(size)+")";
- 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,
- Subgraph(name3,opcindy);
- );
- );
- Out;
-);
-
-Makeskeletondata(ObjL,PltL,R0):=(
- regional(Allres,res,Eps1,obj,plt,obj2,remov,flg,koc,z1,z2,Rr,str,
- mm,nn,kk,ptk,pL,pt,ptL,tmp,tmp1,tmp2,tmp3,tmp3d);
- Eps1=10.0^(-2);
- Allres=[];
- forall(1..(length(ObjL)),mm,
- obj=ObjL_mm;
- remov=[];
- obj2=Projcurve(obj);
- forall(1..(length(PltL)),nn,
- plt=PltL_nn;
- tmp=Projcurve(plt);
- koc=IntersectcurvesPp(obj2,tmp);
- forall(1..(length(koc)),kk,
- ptk=koc_kk;
- tmp=PointonCurve(ptk_2,obj);
- z1=Zparapt(tmp);
- tmp=PointonCurve(ptk_3,plt);
- z2=Zparapt(tmp);
- if(z1<z2-Eps1,
- tmp=max([sqrt(1-(ptk_5)^2),0.75]);
- Rr=R0/tmp;
- tmp2=[];
- flg=0;
- tmp=reverse(1..(floor(ptk_2)));
- forall(tmp,
- if(flg==0,
- if(|obj2_#-ptk_1|>Rr,
- tmp2=[#];
- flg=1;
- );
- );
- );
- if(length(tmp2)==0,tmp2=[1]);
- flg=0;
- tmp=(ceil(ptk_2))..(length(obj2));
- forall(tmp,
- if(flg==0,
- if(|obj2_#-ptk_1|>Rr,
- tmp2=append(tmp2,#);
- flg=1;
- );
- );
- );
- if(length(tmp2)==1,tmp2=append(tmp2,length(obj2)));
- tmp=obj2_((tmp2_1)..(tmp2_2));
- tmp1=Circledata("",[ptk_1,ptk_1+[Rr,0]],["Num=8","nodata"]);
- tmp1=Intersectcurves(tmp,tmp1);
- if(length(tmp1)==2,
- tmp=sort([tmp1_1_2,tmp1_2_2]);
- tmp=[[tmp2_1-1+tmp_1,1],[tmp2_1-1+tmp_2,-1]];
- remov=concat(remov,tmp);
- );
- if(length(tmp1)==1,
- if(tmp2_1==1,
- tmp=[[1,1],[tmp2_1-1+tmp1_1_2,-1]];
- ,
- tmp=[[tmp2_1-1+tmp1_1_2,1],[length(obj2),-1]];
- );
- remov=concat(remov,tmp);
- );
- );
- );
- );
- if(length(remov)==0,
- res=obj;
- ,
- res=[];
- remov=sort(remov,[#_1,#_2]);
- tmp=select(remov,#_1<1-Eps1);
- if(length(tmp)==0,
- flg=0;
- res=[1];
- ,
- flg=length(tmp);
- res=[];
- );
- forall(remov,
- tmp=flg;
- if(#_2==-1,
- flg=flg-1;
- if(flg==0,res=append(res,#_1));
- );
- if(#_2==1,
- flg=flg+1;
- if(tmp==0,res=append(res,#_1));
- );
- );
- if((flg==0)&(res_(length(res))<length(obj)),
- res=append(res,length(obj));
- );
- tmp=res;
- res=[];
- forall(1..(length(tmp)/2),nn,
- tmp1=tmp_(2*nn-1);
- tmp2=tmp_(2*nn);
- pL=(ceil(tmp1))..(floor(tmp2));
- if(tmp1<ceil(tmp1)-Eps1,pL=prepend(tmp1,pL));
- if(tmp2>floor(tmp2)+Eps1,pL=append(pL,tmp2));
- ptL=[];
- forall(pL,
- pt=PointonCurve(#,obj);
- ptL=append(ptL,pt);
- );
- res=append(res,ptL);
- );
- );
- Allres=append(Allres,res);
- );
- Allres;
-);
-
-////////////// current skeleton 2018.01.04 ////////////////
-
-////%Skeletonparadata start////
-Skeletondatacindy(nm):=Skeletondatacindy(nm,[]);
-Skeletondatacindy(nm,options):=(
- regional(tmp);
- tmp=Datalist3d();
- Skeletondatacindy(nm,tmp,tmp,options);
-);
-Skeletondatacindy(nm,pltdata1,pltdata2):=
- Skeletondatacindy(nm,pltdata1,pltdata2,[]);
-Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
-//help:Skeletondatacindy("1");
-//help:Skeletondatacindy("1",[pdata1,pdata2],[pdata3]);
-//help:Skeletondatacindy(options=[1(width),"File=y(/m/n)","Not=ptlist","Check=ptlist"]);
+//help:Skeletonparadatac(options=[1(width),"File=y(/m/n)","Not=ptlist","Check=ptlist"]);
regional(Eps,Eps2,name2,name3,options,Ltype,Noflg,reL,eqL,opcindy,
Out,ObjL,Plt3L,Rr,pltdata1,pltdata2,Plt2L,ObjL,ii,Data,
Obj3,jj,Gd,PtD,size,tmp,tmp1,tmp2,color,
fileflg,wflg,mkflg,fname,varL,nn,chkL); //181101
name2="sk2d"+nm;
name3="sk3d"+nm;
- fname=Fhead+"sk"+nm+".txt"; //181102
+ fname=Fhead+"sk"+nm+".txt"; // no ketjs //181102
pltdata1=[];// 16.01.31
forall(pltdata1org,tmp1,
tmp=parse(tmp1);
+ tmp=apply(tmp,if(isstring(#),parse(#),#));//190506
pltdata1=append(pltdata1,tmp);
);
pltdata2=[];// 16.01.31
forall(pltdata2org,tmp1,
tmp=parse(tmp1);
+ tmp=apply(tmp,if(isstring(#),parse(#),#));//190506
pltdata2=append(pltdata2,tmp);
);
options=optionsorg;
@@ -4755,10 +4579,10 @@ Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
Rr=size*Rr;
if(length(reL)>1,Eps2=reL_2);
);
- forall(eqL, //181101from
+ forall(eqL, // no ketjs on //181101from
tmp=Strsplit(#,"=");
tmp1=Toupper(substring(tmp_1,0,1));
- if(tmp1=="FI",
+ if(tmp1=="F", //190320
fileflg=Toupper(substring(tmp_2,0,1));
options=remove(options,[#]);
);
@@ -4773,13 +4597,13 @@ Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
chkL=parse(tmp_2);
options=remove(options,[#]);
);
- );
+ );// no ketjs off
Eps=10^(-4);
ObjL=Flattenlist(pltdata1);
Plt3L=Flattenlist(pltdata2);
- tmp=apply(Plt3L,ProjcoordCurve(#));
+ tmp=apply(Plt3L,Projcoordcurve(#));
Plt2L=Flattenlist(tmp);
- if((fileflg=="Y")%(fileflg=="M")&(mkflg>-1), //181101from, 181103
+ if((fileflg=="Y")%(fileflg=="M")&(mkflg>-1), // no ketjs on //181101from, 181103
wflg=1;
tmp=flatten(pltdata1org);
varL=tmp;
@@ -4814,21 +4638,21 @@ Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
if(isexists(Dirwork,fname),
mkflg=0;
ReadOutData(fname);
- tmp=name3+"="+Textformat(parse(name3),5);
+ tmp=name3+"="+Textformat(parse(name3),5)+";"; //190415
parse(tmp);
- tmp=name2+"="+Textformat(parse(name2),5);
+ tmp=name2+"="+Textformat(parse(name2),5)+";"; //190415
parse(tmp);
);
);
);
- );
- );
+ );
+ );// no ketjs off
if(mkflg==1, //181102
///////////// tmp=apply(pltdata1,replace(#,"3d","2d"));
Out=[];
forall(1..(length(ObjL)),ii,
Obj3=ObjL_ii;
- tmp=ProjcoordCurve(Obj3);
+ tmp=Projcoordcurve(Obj3);
Data=Makeskeletondata([tmp],Plt2L,Rr,Eps2);
forall(1..(length(Data)),jj,
Gd=Data_jj;
@@ -4846,7 +4670,7 @@ Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
);
Out=select(Out,length(Projcurve(#))>0); // 16.12.19
tmp1=apply(Out,textformat(#,5));
- tmp=name3+"="+tmp1;
+ tmp=name3+"="+tmp1+";"; //190415
parse(tmp);
tmp=name2+"=Projcurve("+tmp1+");";
parse(tmp);
@@ -4854,7 +4678,7 @@ Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
if(mkflg>-1,
Changestyle3d(pltdata1org,["nodisp"]);
);
- if((Noflg<3)&(mkflg>-1), //181103
+ if((Noflg<3)&(mkflg> -1), //no ketjs on //181103
if(fileflg!="Y", //181102
println("generate skeleton :"+name3);
tmp1=text(pltdata1org);
@@ -4869,11 +4693,11 @@ Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
,
GLIST=append(GLIST,"ReadOutData("+Dq+fname+Dq+")");//181102
);
- );
+ ); //no ketjs off
if((Noflg<2)&(mkflg>-1), //181103
if(isstring(Ltype),
if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+color+")"));
- Ltype=GetLinestyle(text(Noflg)+Ltype,name2);
+ Ltype=Getlinestyle(text(Noflg)+Ltype,name2);
if(!contains([[0,0,0],[0,0,0,1]],color),Com2nd("Setcolor("+text(KCOLOR)+")"));
,
if(Noflg==1,Ltype=0);
@@ -4883,7 +4707,7 @@ Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
Subgraph(name3,opcindy);
);
);
- if(mkflg>-1,
+ if(mkflg>-1, // no ketjs on
if((fileflg=="Y")&(wflg==1), //181102from
tmp1="skeleton"+nm+".txt";
SCEOUTPUT = openfile(tmp1);
@@ -4892,11 +4716,11 @@ Skeletondatacindy(nm,pltdata1org,pltdata2org,optionsorg):=(
);
closefile(SCEOUTPUT);
WriteOutData(fname,[name3,parse(name3),name2,parse(name2)]);
- ); //181102to
+ ); //181102to
Out;
- );
+ );// no ketjs off
);
-////%Skeletonparadata end////
+////%Skeletondatacindy end////
////%Makeskeletondata start////
Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
@@ -4925,7 +4749,7 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
tmp=Dind_ii;
tmp=Dmat_(Dind_ii_1..Dind_ii_2);
pt2=Columnlist(tmp,1..2);
- koc=IntersectcrvsPp(pt1,pt2,[Eps]);
+ koc=Intersectcrvspp(pt1,pt2,[Eps]);
if(length(koc)>0,
breakflg=0;
forall(1..(length(koc)),jj,
@@ -5014,7 +4838,7 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
forall(reverse(1..nn),jj,
contflg=0;
if(breakflg==0,
- ptq=PointonCurve(jj,pt1);
+ ptq=Pointoncurve(jj,pt1);
if(Norm(pt-ptq)<Rr,
contflg=1;
);
@@ -5032,7 +4856,7 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
hh=t2-t1;
forall(1..10,
hh=hh*0.5;
- ptq=PointonCurve(t1+hh,pt1);
+ ptq=Pointoncurve(t1+hh,pt1);
if(Norm(pt-ptq)<Rr,
t2=t2-hh;
,
@@ -5046,7 +4870,7 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
forall((nn+1)..te,jj,
contflg=0;
if(breakflg==0,
- ptq=PointonCurve(jj,pt1);
+ ptq=Pointoncurve(jj,pt1);
if(Norm(pt-ptq)<Rr,
contflg=1;
);
@@ -5064,7 +4888,7 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
hh=t2-t1;
forall(1..10,
hh=hh*0.5;
- ptq=PointonCurve(t1+hh,pt1);
+ ptq=Pointoncurve(t1+hh,pt1);
if(Norm(pt-ptq)<Rr,
t1=t1+hh;
,
@@ -5079,19 +4903,19 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
Res=[];
forall(1..(length(KukanL)),ii,
tmp=KukanL_ii;
- t1=tmp_1; nn1=floor(t1);
- t2=tmp_2; nn2=floor(t2);
- PtL=[];
+ t1=tmp_1; nn1=re(floor(t1));
+ t2=tmp_2; nn2=re(floor(t2));
+ PtL=[];
if(t1-nn1<1-Eps,
- tmp=PointonCurve(t1,pt1);
+ tmp=Pointoncurve(t1,pt1);
PtL=[tmp];
);
forall((nn1+1)..nn2,jj,
- tmp=PointonCurve(jj,pt1);
+ tmp=Pointoncurve(jj,pt1);
PtL=append(PtL,tmp);
);
if(t2-nn2>Eps,
- tmp=PointonCurve(t2,pt1);
+ tmp=Pointoncurve(t2,pt1);
PtL=append(PtL,tmp);
);
tmp=Listplot("",PtL,["nodata"]);
@@ -5099,6 +4923,7 @@ Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=(
);
Allres=concat(Allres,Res);
);
+
Allres;
);
////%Makeskeletondata end////
@@ -5160,8 +4985,8 @@ Kukannozoku(Jokyo,KukanL):=(
////////////////// end of current skeleton//////////////
-////%ProjcoordCurve start////
-ProjcoordCurve(Curve):=(
+////%Projcoordcurve start////
+Projcoordcurve(Curve):=(
regional(SP,CP,ST,CT,Out,jj,pt,x,y,z,xz,yz,zz);
SP=sin(PHI); CP=cos(PHI);
ST=sin(THETA); CT=cos(THETA);
@@ -5176,7 +5001,7 @@ ProjcoordCurve(Curve):=(
);
Out;
);
-////%ProjcoordCurve end////
+////%Projcoordcurve end////
////%Divnohidhid start////
Divnohidhid(nm,dt3dorg,nvec):=Divnohidhid(nm,dt3dorg,nvec,[],["do"]);
@@ -5235,11 +5060,11 @@ Divnohidhid(nm,dt3dorg,nvec,optionorg,options2):=(
);
tmp1="[";
forall(nohid,tmp1=tmp1+textformat(#,5)+",");
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
+ tmp1=substring(tmp1,0,length(tmp1)-1)+"];"; //190415
parse(name+"nh="+tmp1);
tmp1="[";
forall(hid,tmp1=tmp1+textformat(#,5)+",");
- tmp1=substring(tmp1,0,length(tmp1)-1)+"]";
+ tmp1=substring(tmp1,0,length(tmp1)-1)+"];"; //190415
parse(name+"h="+tmp1);
[nohid,hid];
);
@@ -5282,7 +5107,7 @@ Beziersurf(nm,m,n,pL):=(
"y"
]);
if(ispoint(pL_1),
- p3dL=apply(pL,parse(text(#)+"3d"));
+ p3dL=apply(pL,#.name+"3d"); //190505
,
p3dL=apply(pL,parse(#+"3d"));
);