diff options
author | Norbert Preining <norbert@preining.info> | 2017-09-04 09:45:51 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2017-09-04 09:45:51 +0900 |
commit | 138f77fe71e43adc24ecb030d73df81cc5c4eb7e (patch) | |
tree | cd2d906c634149bbecd2f4bad3d540c16b23befa /texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makehasen.sci | |
parent | 37bfdbee2c91bab6f0abd54503a0b9c669c9109e (diff) |
add ketpic
Diffstat (limited to 'texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makehasen.sci')
-rwxr-xr-x | texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makehasen.sci | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makehasen.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makehasen.sci new file mode 100755 index 00000000..3f768e87 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makehasen.sci @@ -0,0 +1,123 @@ +// +// 11.05.26 (for pdflatex) + +function Makehasen(Figdata,Sen,Gap,Ptn) + global Wfile FID; + Eps=10.0^(-6); + Clist=MakeCurves(Figdata); + DinM=Dataindex(Clist); + for N=1:size(DinM,1) + Tmp=DinM(N,:); + Data=Clist(Tmp(1):Tmp(2),:); + Dtall=size(Data,1); + Len=0; + Lenlist=[0]; + for I=2:Dtall + Len=Len+Vecnagasa(Data(I,:)-Data(I-1,:)); + Lenlist=[Lenlist,Len]; + end + Lenall=Lenlist(Dtall); + if Lenall==0 + continue + end + Kari=(Sen+Gap)*0.1; + Naga=Sen*0.1; + Tobi=Gap*0.1; + if Vecnagasa(Data(1,:)-Data(Dtall,:))<Eps + Nsen=max(ceil(Lenall/Kari),3); + SegUnit=Lenall/Nsen; + Naga=SegUnit*Sen/(Sen+Gap); + Tobi=SegUnit*Gap/(Sen+Gap); + SegList=[0:SegUnit:(Nsen-1)*SegUnit]; + else + if Ptn==0 + Nsen=max(ceil((Lenall+Tobi)/Kari),3); + SegUnit=Lenall*(Sen+Gap)/(Nsen*Sen+(Nsen-1)*Gap); + Naga=SegUnit*Sen/(Sen+Gap); + Tobi=SegUnit*Gap/(Sen+Gap); + SegList=[0:SegUnit:(Nsen-1)*SegUnit]; + else + Nsen=max(ceil((Lenall+Naga)/Kari),3); + SegUnit=Lenall*(Sen+Gap)/((Nsen-1)*Sen+Nsen*Gap); + Naga=SegUnit*Sen/(Sen+Gap); + Tobi=SegUnit*Gap/(Sen+Gap); + SegList=[Tobi:SegUnit:Tobi+(Nsen-2)*SegUnit]; + end + end + Hajime=1; Owari=1; + Mojisu=0; + for I=1:length(SegList) + Len=SegList(I); + J=Owari; + while Len>=Lenlist(J)-Eps + if J==Dtall + break + end + J=J+1; + end + Hajime=J-1; + J=Hajime; + while Len+Naga>Lenlist(J)-Eps + if J==Dtall + break + end + J=J+1 + end + Owari=J-1; + T=(Len-Lenlist(Hajime))... + /(Lenlist(Hajime+1)-Lenlist(Hajime)); + P=Data(Hajime,:)+T*(Data(Hajime+1,:)-Data(Hajime,:)); + X0=sprintf('%5.5f',P(1)); + Y0=sprintf('%5.5f',P(2)); + Pt0='('+X0+','+Y0+')'; + Str='\polyline'+Pt0; + if Wfile=='default' + mprintf('%s',Str); + else + mfprintf(FID,'%s',Str); + end; + Mojisu=Mojisu+length(Str); + for J=Hajime+1:Owari + P=Data(J,:); + X=sprintf('%5.5f',P(1)); + Y=sprintf('%5.5f',P(2)); + Pt='('+X+','+Y+')'; + Str=Pt; + if Wfile=='default' + mprintf('%s',Str); + else + mfprintf(FID,'%s',Str); + end; + Pt0=Pt; + Mojisu=Mojisu+length(Str); + end; + T=(Len+Naga-Lenlist(Owari))... + /(Lenlist(Owari+1)-Lenlist(Owari)); + P=Data(Owari,:)+T*(Data(Owari+1,:)-Data(Owari,:)); + X=sprintf('%5.5f',P(1)); + Y=sprintf('%5.5f',P(2)); + Pt='('+string(X)+','+string(Y)+')'; + Str=Pt; + if Wfile=='default' + mprintf('%s',Str); + else + mfprintf(FID,'%s',Str); + end; + Mojisu=Mojisu+length(Str); + if Mojisu>80 + if Wfile=='default' + mprintf('%s\n','%'); + else + mfprintf(FID,'%s\n','%'); + end; + Mojisu=0; + end + end + end + if Wfile=='default' + mprintf('%s\n%s\n','%','%'); + else + mfprintf(FID,'%s\n%s\n','%','%'); + end; +endfunction + |