using System; public class BSpline:Curve { public static double B(int n,double t) { if(n==0) return 1.0/6.0*Math.Pow(1.0-t,3.0); if(n==1) return 1.0/6.0*(3.0*t*t*t-6.0*t*t+4.0); if(n==2) return 1.0/6.0*(-3.0*t*t*t+3.0*t*t+3.0*t+1.0); if(n==3) return 1.0/6.0*Math.Pow(t,3.0); return 0.0; } public static double N(int n,int i,double t) { double tj, T=t*(n-3); int b=-1; if((i-3.0<=T)&&(Tn-4) j=n-4; for(int i=j;i<=j+3;i++) r+=N(n,i,t)*p[i]; return r; } }