summaryrefslogtreecommitdiff
path: root/texmf-dist/scripts/ketcindy/ketlib/ketpicscifiles6/Bowdata.sci
blob: 48154cf1d81f6698b4e2d81154f7c0057921b5b0 (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
//
// 08.05.22
// 08.08.24

function Pd=Bowdata(varargin)
  global BOWMIDDLE BOWSTART BOWEND
  Nargs=length(varargin);
  PA=varargin(1);
  PB=varargin(2);
  Cut=0;
  D=1/2*Vecnagasa(PB-PA);
  if Nargs>=3
    H=varargin(3)*D*0.2; 
  else
    H=D*0.2;
  end
  H=min(H,D);
  if Nargs>=4
    Cut=varargin(4);
  end
  Ydata=MakeBowdata(PA,PB,H); 
  C=Mixop(1,Ydata);
  r=Mixop(2,Ydata);
  R1=Mixop(3,Ydata);
  R2=Mixop(4,Ydata);
  Rng='R=['+string(R1)+','+string(R2)+']';
  Theta=(R1+R2)*0.5;
  BOWMIDDLE=MixS([C(1)+r*cos(Theta),C(2)+r*sin(Theta)],Theta);
  M=Mixop(1,BOWMIDDLE);
  ThetaM=Mixop(2,BOWMIDDLE);
  BOWSTART=PA;
  BOWEND=PB;
  if Cut==0
    Pd=Circledata(C,r,Rng);
  else
    Alpha=R1; Beta=ThetaM-Cut/(2*r);
    Rng='R=['+string(Alpha)+','+string(Beta)+']';
    Pd=Circledata(C,r,Rng);
    Alpha=ThetaM+Cut/(2*r); Beta=R2;
    Rng='R=['+string(Alpha)+','+string(Beta)+']';
    Tmp=Circledata(C,r,Rng);
    Pd=[Pd;%inf,%inf;Tmp];
  end
endfunction