P3

p1={{0,0},{0,3}};
g1=Graphics[{BezierCurve[p1],Red,Line[p1],Blue,Point[p1]}];

Zwischenpunkt auf Gerade berechnen

next[p1_,p2_,t_]:= t*p1 + (1-t) * p2;

Anfangs und Endpunkt der Kurve

Pa=p1[[2]];

Pe=next[p1[[1]],p1[[2]],0.5];

Halbkreis von Pa nach Pe mit Mittelpunkt M=(0,2.25)

r=(Pa[[2]]-Pe[[2]])/2;

r1=((Pa[[2]]-Pe[[2]])/2)*1.5;

M={Pa[[1]],Pe[[2]]+r};

Teilung des Halbkreises in zwei Viertelkreise

Pz={M[[1]]+r1,M[[2]]};

p21=Pa+0.552*(Pz-M);

p22=Pz+0.552*(Pa-M);

p2={Pa,p21,p22,Pz};

g2=Graphics[{BezierCurve[p2],Blue,Point[p2]}];

p31=Pz+0.552*(Pe-M);

p32=Pe+0.552*(Pz-M);

p3={Pz,p31,p32,Pe};

g3=Graphics[{BezierCurve[p3],Blue,Point[p3]}];

Show[g1,g2,g3]