2dbsplinecurve b1 3 5 0 4 1 1 2 1 3 1 4 4 0 0 1 1 0.5 1 2 1 1 2 2 1 3 1.5 1 4 1.5 1 5 2 1 2dcvalue b1 2.0 x y dx dy set delta 0.005 point p1 x y set dyvalue [dval dy] repeat 100 { cmovetangent b1 2.0 x y dx $dyvalue 1 set dyvalue [expr $dyvalue + $delta ] repaint } copy b1 result set length 5.9590472422107315