B-スプライン曲線
double baseN(int i,int k,double t,int nv[]){ double w1=0.0,w2=0.0; if(k==1){ if(t >=nv[i] && t<nv[i+1]) return 1.0; else return 0.0; } else { if((nv[i+k]-nv[i+1])!=0){ w1=((nv[i+k]-t)/(nv[i+k]-nv[i+1])) * baseN(i+1,k-1,t,nv); } if((nv[i+k-1]-nv[i]) !=0 ){ w2=((t-nv[i])/(nv[i+k-1]-nv[i])) * baseN(i,k-1,t,nv); } return (w1+w2); } }