Cubic

cubic-split.png

   x: (2&^@- * !~/~) i.4

  1   0   0   0
1r2 1r2   0   0
1r4 1r2 1r4   0
1r8 3r8 3r8 1r8

   x: (,|."1@|.@}:) (2&^@- * !~/~) i.4
  1   0   0   0
1r2 1r2   0   0
1r4 1r2 1r4   0
1r8 3r8 3r8 1r8
  0 1r4 1r2 1r4
  0   0 1r2 1r2
  0   0   0   1

require 'plot'

S3=. }. (,|."1@|.@}:) (2&^@- * !~/~) i.4
split3=: ( {. ,  [: , (,.3 4)&((S3 +/ . * ]);._3) )"1

3 : 0 ''
C=. 45 44,.31 218,.146 388,.378 195
pd 'reset;pensize 2;markersize 1.5;'
pd 'type line,marker'
pd <"1 C
pd <"1 split3 C
pd 'type line'
pd <"1 split3^:4 C
pd 'show'
)

curve3.png

Quadratic

S2=. }. (,|."1@|.@}:) (2&^@- * !~/~) i.3
split2=: ( {. ,  [: , (,.2 3)&((S2 +/ . * ]);._3) )"1

3 : 0 ''
C=. 45 44,.88 303,.378 195
pd 'reset;pensize 2;markersize 1.5;'
pd 'type line,marker'
pd <"1 C
pd <"1 split2 C
pd 'type line'
pd <"1 split2^:4 C
pd 'show'
)

curve2.png

Smooth Transition

adj=: ([: }:@, }. ,.~ }: -:@+ }.)"1

3 : 0 ''
C=.  adj (,:~ i.@#) A=: 1 4 2 6 3
pd 'reset;pensize 1;markersize 1.5;pensize 2'
pd 'type line,marker'
pd <"1 C
pd <"1 split2 C
pd 'type dot;'
pd <"1 split2^:4 C
pd 'show'
)

smooth2.png

OlegKobchenko/Curves (last edited 2008-12-08 10:45:41 by )