V9/jtools/src/Jpic/newspline

From theo Wed Aug  6 16:12 EDT 1980
Brian:
This is the efficient procedure for splines.
It requires points from 0 to N-1. To keep the
same convention as before we must have
P(0) = P(1)  and P(N-2) = P(N-1).
spline(){
	int i,j,ILEN=10,I,Xs,Ys;
	double X1, X2, X3, Y1, Y2, Y3;
	double xi,u,LEN=10.0;
	I=0;
	for(i=0;i< N-2; i++){
		xi=i;
		X1 = (X[i+2]+X[i])/2 - X[i+1];
		X2 = X[i+1]-X[i];
		X3 = (X[i+1]+X[i])/2;
		Y1 = (Y[i+2]+Y[i])/2 - Y[i+1];
		Y2 = Y[i+1]-Y[i];
		Y3 = (Y[i+1]+Y[i])/2;
		for(j=0;j<ILEN;j++){
			u = I; u = u/LEN - xi;
			Xs = (X1*u + X2)*u + X3;
			Ys = (Y1*u + Y2)*u + Y3;
			if(!I) move(Xs,Ys); else cont(Xs,Ys);
			I++;
			}
		}
	}