summaryrefslogtreecommitdiff
path: root/texmf-dist/scripts/ketcindy/ketlib/ketpic2escifiles6/Dottedlineold.sci
blob: c4d9b86ae4420a84932e4724a20a4340061f8164 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
// 08.05.21
// 08.11.26

function Dottedline(varargin)
  global Wfile FID MilliIn;
  Nall=length(varargin);
  Nagasa=0.1;
  Ookisa=0.02*0.5;
  I=Nall;
  Tmp=varargin(I);
  while type(Tmp)==1 & length(Tmp)==1
    I=I-1;
    Tmp=varargin(I);
  end
  if I==Nall-1
    Nagasa=Nagasa*varargin(Nall);
    Nall=Nall-1;
  end
  if I==Nall-2
    Nagasa=Nagasa*varargin(Nall-1);
    Ookisa=Ookisa*varargin(Nall);
    Nall=Nall-2;
  end
  Nagasa=1000/2.54/MilliIn*Nagasa;
  Ookisa=1000/2.54/MilliIn*Ookisa;
  CL=[];
  Nk=4;
  Tmp=Framedata([0,0],Ookisa/2);
  CL=Tmp;
  for N=1:Nall
    Pdata=varargin(N);
    if Mixtype(Pdata)==1
      Pdata=MixS(Pdata);
    end
    for II=1:Mixlength(Pdata)
      Clist=MakeCurves(Op(II,Pdata));
      DinM=Dataindex(Clist);
      for n=1:size(DinM,1)
        Tmp=DinM(n,:);
        Data=Clist(Tmp(1):Tmp(2),:);
        Len=0;
        Lenlist=[0];
        for I=2:size(Data,1)
          Len=Len+Vecnagasa(Data(I,:)-Data(I-1,:));
          Lenlist=[Lenlist,Len];
        end
        Lenall=Lenlist(length(Lenlist));
        if Lenall==0
          continue
        end
        Naga=Nagasa;
        Nten=round(Lenall/Naga)+1;
        if Nten>1
          Seg=Lenall/(Nten-1);
        else
          Seg=Lenall;
        end
        Eps=10^(-6)*Seg;
        Hajime=1;
        for I=0:Nten-1
          Len=Seg*I;
          if I>0
            J=Hajime;
            while Len>=Lenlist(J)+Eps
              J=J+1;
            end
            Hajime=J-1;
          end
          T=(Len-Lenlist(Hajime))...
            /(Lenlist(Hajime+1)-Lenlist(Hajime));
          P=Data(Hajime,:)+T*(Data(Hajime+1,:)...
            -Data(Hajime,:));
          if I==Nten-1
            if Vecnagasa(P-Data(1,:))<Eps
              continue
            end
          end
          PL=[];
          for J=1:size(CL,1)
            PL=[PL;P+CL(J,:)];
          end
          Mojisu=0;
          for J=1:size(PL,1)
            Q=PL(J,:);
            X=round(MilliIn*Q(1));
            X=string(X);
            Y=-round(MilliIn*Q(2));
            Y=string(Y);
            Str='\special{pa '+X+" "+Y+'}';
            if Wfile=='default'    
              mprintf('%s',Str);
            else
              mfprintf(FID,'%s',Str);
            end
            Mojisu=Mojisu+length(Str);
            if Mojisu>80
              if Wfile=='default'
                mprintf('%c\n','%');
              else
                mfprintf(FID,'%c\n','%');
              end
              Mojisu=0;
            end
          end
          Str='\special{sh 1}'+'\special{fp}%'
          if Wfile=='default'
            mprintf('%s\n',Str);
          else
            mfprintf(FID,'%s\n',Str);
          end
        end
      end
    end
  end
endfunction