Höhere Mathematik sehen und verstehen, 
Haftendorn, Riebesehl, Aug. 2021       Interaktive Version mit kostenlosem Mathematica Player

Kreis mit rationalen Béziersplines

Herleitung einer Parameterdarstellung für den Kreis

Vorgehen: Eine beliebige Gerade durch einen geeigneten Startpunkt schneidet den Kreis. 
Die Steigung t dieser Geraden eignet sich als Parameter.   
Ziehe t im interaktiven Kasten.

Kreis  (x^2) +(y^2) =(r^2)

r=2;Kreis=ContourPlot[{(x^2)+(y^2)==(r^2)
},{x,-r,r},{y,-r,r}, AspectRatio->1, ContourStyle->{Red}];

Manipulate[Show[Kreis,Plot[t (x+r),{x,-r,r}, PlotRange->{-r,r}]],
{{t,-0.4},-3,3},SaveDefinitions->True]

r=.;Solve[{(x^2)+(y^2)==(r^2), y==t (x+r)},{x,y}]
(*Schnittpunkte der Geraden durch A=(-r,0) mit dem Kreis*)

Das ist nun eine Parameterdarstellung des Kreises

Definition rationaler Bézierspline-Basis

Bernsteinpolynome

b[0,t_]:=(((1-t))^3);
b[1,t_]:=3t(((1-t))^2); 
b[2,t_]:=3(t^2)(1-t);b[3,t_]:=(t^3)

Rw=.

Rw[i_,t_]:=((ww[i] b[i,t])/(Sum[ww[j] b[j,t],{j,0,3}])); 
Rw[i,t]

Bestimmung der Gewichte aus der Parameterdarstellung

{x->r((1-(t^2))/(1+(t^2))),y->r((2t)/(1+(t^2)))}  (*Kreis, Radius r*)

Die Gewichte müssen aus dem Nenner bestimmt werden.

nenner=Sum[ww[j] b[j,t],{j,0,3}]

CoLi=CoefficientList[nenner,t] (* für Koeffizientenvergleich, Liste Koeff von  {1,t,(t^2),(t^3)}*)

lo=Solve[CoLi=={1,0,1,0},{ww[0],ww[1],ww[2],ww[3]}]

Also sind die Gewichte (übrigens ebenso wie für die Trisektrix)

W={ww[0],ww[1],ww[2],ww[3]}/.lo[[1]]

nenner=Sum[ww[i] b[i,t],{i,0,3}]/.lo[[1]]//Simplify   (* wie erwartet*)

Vergleich der Bernsteinpolynome mit der rationalen Version

Verwendung der Gewichte auch im Zähler für die Trisektrix

lo[[1]]

R[i_,t_]:=((ww[i] b[i,t])/nenner)/.lo[[1]]

{R[0,t],R[1,t],R[2,t],R[3,t]}//Simplify

alle=Plot[{R[0,t],R[1,t],R[2,t],R[3,t],b[0,t],b[1,t],b[2,t],b[3,t]},{t,0,1}]
nurRat=Plot[{R[0,t],R[1,t],R[2,t],R[3,t]},{t,0,1}]

Unten allein, oben auch: Dunkelblau R0, Ocker R1, Grün R2, Rot R3, 
Bezier außerdem:  Lila b0, Braun b1, Hellblau b2, Hellgelb b3

Steuerpunkte für den Kreis

Punkte

P={{Ax,Ay}, {Bx,By},{Cx,Cy},{Dx,Dy}};

x-Werte

Zx=Ax (((1-t))^3)+Bx 3(((1-t))^2)t+Cx 4(1-t)(t^2)+2Dx (t^3)//Expand

Zx=r-r (t^2);

Koeffizientenvergleich

lox=Solve[{Ax==r,-3Ax+3Bx==0, 3Ax-6Bx+4Cx==-r,-Ax+3Bx-4Cx+2Dx==0},{Ax,Bx,Cx,Dx}]

y-Werte

Zy=Ay-3 Ay t+3By t+3 Ay (t^2)-6 By (t^2)+4Cy (t^2)-Ay (t^3)+3By (t^3)-4Cy (t^3)+2Dy (t^3)

Zy=2 r t;

Koeffizientenvergleich

loy=Solve[{Ay==0,-3Ay+3By==2r, 3Ay-6By+4Cy==0,-Ay+3By-4Cy+2Dy==0},{Ay,By,Cy,Dy}]

Koordinaten=Join[lox[[1]],loy[[1]]]

Steuerpunkte

{{Ax,Ay},{Bx,By},{Cx,Cy},{Dx,Dy}}/.Koordinaten

GeoGebra-Dateien dazu  Kreis-pos-param.ggb