summaryrefslogtreecommitdiff
path: root/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bezierpt.sci
blob: ac639249ff34c10a070ac7a9d9146d7ca045ee82 (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
// 15.01.01
// 15.02.08   for 3d

function Out=Bezierpt(t,Ptlist,Ctrlist)
  if length(Ptlist)==6 then // 3d 15.02.08
    P0=Ptlist(1:3);
    P3=Ptlist(4:6);
    P1=Ctrlist(1:3);
    if length(Ctrlist)==3 then
      P2=P3;
      flg3=0;
    else
      P2=Ctrlist(4:6);
      flg3=1;
    end;
  else
    P0=Ptlist(1:2);
    P3=Ptlist(3:4);
    P1=Ctrlist(1:2);
    if length(Ctrlist)==2 then
      P2=P3;
      flg3=0;
    else
      P2=Ctrlist(3:4);
      flg3=1;
    end;
  end;
  P4=(1-t)*P0+t*P1;
  P5=(1-t)*P1+t*P2;
  P6=(1-t)*P2+t*P3;
  P7=(1-t)*P4+t*P5;
  P8=(1-t)*P5+t*P6;
  P9=(1-t)*P7+t*P8;
  if flg3==0 then
    Out=P7;
  else
    Out=P9;
  end;
endfunction;