(* Polinomios de Bernstein *)

B[n_,i_][t_]:=Binomial[n,i]*t^i*(1-t)^(n-i)

(* Puntos de control

red:={P0,P1,P2,P3,P4,P5,P6}

(* Dibujo de los puntos y el polígono de control *)

puntos:={PointSize[0.02],Blue,Point[Table[red[[i+1]],{i,0,n}]]};
polcontrol:={Red,Line[Table[red[[i+1]],{i,0,n}]]};

(* grado de la curva, 1 menos que puntos *)

n:=3

(* curva de Bézier *)

Sum[red[[i+1]]*B[n,i][t],{i,0,n}]

(* ejemplo *)

P0:={-1,0};P1:={-1,2};P2:={1,2};P3:={1,0}

Sum[red[[i+1]]*B[n,i][t],{i,0,n}]//Simplify

(* Vamos a dibujar *)

Show[puntos,polcontrol,Out[34]]

Manipulate

P0:={-1,0};P1:={-1,a};P2:={1,a};P3:={1,0}

Sum[red[[i+1]]*B[n,i][t],{i,0,n}]//Simplify

Manipulate[Graphics[polcontrol],{a,1,5}]

(* Otra alternativa *)

bezier[red_,n_][t_]:=Sum[red[[i+1]]*B[n,i][t],{i,0,n}]

DynamicModule[{red={{0,0},{1,1},{2,0},{3,2}}},LocatorPane[Dynamic[red],Dynamic[ParametricPlot[bezier[red,3][t],{t,0,1},PlotRange->{{-1,4},{-2,4}}]]]]