/* Curve function drawn by quadratic parabolic Method */
Void paowuxian (int * X, int * y, int N, unsigned int K)
{
Unsigned int I, J;
Float T1, T2, T3, t, a, B, c, d, TX, Ty;
* X = * (x + 1); * (y) = * (Y + 1 );
* (X + n + 1) = * (x + n); * (Y + n + 1) = * (Y + n );
T = 0.5/K;
Setcolor (10 );
MoveTo (* (x + 1), * (Y + 1 ));
For (I = 0; I <n-1; I ++)
{
For (j = 1; j <K; j ++)
{
T1 = J * t;
T2 = T1 * T1;
T3 = T2 * T1;
A = 4 * t2-t1-4 * T3;
B = 1-10 * t2 + 12 * T3;
C = t1 + 8 * t2-12 * T3;
D = 4 * t3-2 * t2;
Tx = A * (x + I) + B * (x + I + 1) + C * (x + I + 2 )) + D * (x + I + 3 ));
Ty = A * (Y + I) + B * (Y + I + 1) + C * (Y + I + 2 )) + D * (Y + I + 3 ));
Lineto (TX, Ty );
}
}
Lineto (* (x + I + 2), * (Y + I + 2 ));
}
/* Curve function drawn by Quadratic B-Spline Method */
Void byangtiao (int * X, int * y, int N, unsigned int K)
{
Unsigned int I, J;
Float T, T1, T2, A, B, C, TX, Ty;
* X = * (x + 1); * Y = * (Y + 1 );
* (X + n + 1) = * (x + n); * (Y + n + 1) = * (Y + n );
T = 1.0/K;
Setcolor (13 );
MoveTo (* x + (* (x + 1)/2.0, (* Y + (* (Y + 1)/2.0 );
For (I = 0; I <n; I ++)
{
For (j = 1; j <K; j ++)
{
T1 = J * t;
T2 = T1 * T1;
A = (t2-2 * t1 + 1)/2.0;
B = t1-t2 + 1/2. 0;
C = T2/2.0;
Tx = A * (x + I) + B * (x + I + 1) + C * (x + I + 2 ));
Ty = A * (Y + I) + B * (Y + I + 1) + C * (Y + I + 2 ));
Lineto (TX, Ty );
}
}
}
/* Cubic parameter splines */
Void parspl (int p [] [2], int N, int K)
{
Int I, J;
Float T1, T2, T3, t, a, B, c, d, X, Y;
P [0] [0] = P [1] [0]; P [0] [1] = P [1] [1];
P [n + 1] [0] = P [N] [0]; P [n + 1] [1] = P [N] [1];
T = 0.5/K;
MoveTo (P [1] [0], p [1] [1] + D );
For (I = 0; I <n-1; I ++)
{
For (j = 1; j <K; j ++)
{
T1 = J * t;
T2 = T1 * T1;
T3 = T2 * T1;
A = 4 * t2-t1-4 * T3;
B = 1-10 * t2 + 12 * T3;
C = t1 + 8 * t2-12 * T3;
D = 4 * t3-2 * t2;
X = A * P [I] [0] + B * P [I + 1] [0] + C * P [I + 2] [0] + D * P [I + 3] [0];
Y = a * P [I] [1] + B * P [I + 1] [1] + C * P [I + 2] [1] + D * P [I + 3] [1];
Lineto (X, Y, 15 );
}
}
Lineto (P [I + 2] [0], p [I + 2] [1], 15 );
}