Welcome to K9.DV8.ORG
A PostScript implementation of the de Castlejau algorithim written by Charles Shiflett ( yikes.com/~bear ).

%Bezier.ps: Creates a Bezier Curve (Using De Casteljau)
%  By Charles Shiflett

/midpoint {
	%args:  x1 x2 y1 y2 
	%returns: midpoint (x, y)
	add 
	2 div
	3 1 roll
	add
	2 div
	exch
} def

/ComputeBezier {
	%Syntax almost like curveto
	/P4y exch def /P4x exch def
	/P3y exch def /P3x exch def
	/P2y exch def /P2x exch def
	/P1y exch def /P1x exch def
	
	1 sub
	/recursionCount exch def


	%Compute Left Side
	P1x P2x P1y P2y midpoint
	/L2y exch def /L2x exch def
	P2x P3x P2y P3y midpoint
	/Hy exch def /Hx exch def
	L2x Hx L2y Hy midpoint
	/L3y exch def /L3x exch def

	%Compute Right Side
	P3x P4x P3y P4y midpoint
	/R3y exch def /R3x exch def
	Hx R3x Hy R3y midpoint
	/R2y exch def /R2x exch def

	%Compute Center
	L3x R2x L3y R2y midpoint
	/Cy exch def /Cx exch def

	% Displays steps taken to computer Bezier
	% 
	% P1x P1y moveto
	% P2x P2y lineto
	% P3x P3y lineto
	% P4x P4y lineto
	% R3x R3y moveto
	% Hx Hy   lineto
	% L2x L2y lineto
	% L3x L3y moveto
	% R2x R2y lineto

	recursionCount 0 eq {
		Cx Cy lineto
		P4x P4y lineto
        } if

	recursionCount 0 ne {

		recursionCount 
		Cx Cy
		R2x R2y
		R3x R3y
		P4x P4y 

		recursionCount 
		P1x P1y
		L2x L2y
		L3x L3y
		Cx Cy

		ComputeBezier 
		ComputeBezier 
	} if
} def

1 1 moveto
10 1 1 100 700  600 750 500 1 ComputeBezier
stroke

% Compare to postscript curveto operator

%1 setlinewidth
%1 1 moveto
%100 700 600 750 500 1 curveto
%1 1 1 setrgbcolor
%stroke 


To do: Update the code to do splines with multiple control points.