> restart:with(plots):
h:=6:
r:=3:
alpha:=arctan(r/h):
hs:=2.5:
rs:=(h-hs)*sin(alpha):
n:=20:
coco:=seq(spacecurve([[0,0,h],[r*cos(t),r*sin(t),0]],numpoints=2),t=seq(k*2*Pi/n,k=1..n)),spacecurve([r*cos(t),r*sin(t),0],t=0..2*Pi):
demico:=plot3d(h-sqrt(x**2+y**2)/tan(alpha),x=-3..3,y=-4..0,style=patchnogrid):
sphere:=plot3d([rs*cos(phi)*cos(theta),rs*cos(phi)*sin(theta),hs+rs*sin(phi)],theta=0..2*Pi,phi=-Pi/2..Pi/2,style=patchnogrid):
hc:=hs+rs*sin(alpha):
plan1:=plot3d(hc,x=-3..3,y=-3..3,style=wireframe,grid=[12,12],color=green):
plan2:=plot3d(hs-rs*sin(alpha)-cot(alpha)*(x+rs*cos(alpha)),x=-3..3,y=-3..3,style=wireframe,grid=[20,13],color=grey):
xd:=fsolve(hs-rs*sin(alpha)-cot(alpha)*(x+rs*cos(alpha))=hc,x):
rc:=rs*cos(alpha):
CercleContact:=spacecurve([rc*cos(theta),rc*sin(theta),hs+rs*sin(alpha)],theta=0..2*Pi,thickness=2,color=black):
directrice:=spacecurve([[xd,-3,hc],[xd,3,hc]],color=black,thickness=3):
foyer:=pointplot3d([-rs*cos(alpha),0,hs-rs*sin(alpha)],symbol=circle,thickness=3,color=black):
xp:=unapply(r*cos(t)*(1-zz/h),t):
yp:=unapply(r*sin(t)*(1-zz/h),t):
zp:=unapply(solve(zz=hs-rs*sin(alpha)-cot(alpha)*(xp(t)+rs*cos(alpha)),zz),t):
a:=2:
ptcourant:=spacecurve([[-rs*cos(alpha),0,hs-rs*sin(alpha)],[subs(zz=zp(a),xp(a)),subs(zz=zp(a),yp(a)),zp(a)],[xd,subs(zz=zp(a),yp(a)),hc]],color=black):

> parabole:=spacecurve([subs(zz=zp(t),xp(t)),subs(zz=zp(t),yp(t)),zp(t)],t=Pi/4..7*Pi/4,thickness=3,color=red):

> display([demico,coco,sphere,plan1,plan2,CercleContact,directrice,parabole,foyer,ptcourant],scaling=constrained,view=[-3..3,-3..3,0..h],lightmodel=light2,orientation=[127,119]);

[Maple Plot]

>