中规中矩吧.....
\documentclass{standalone}
\usepackage[3d]{luadraw}
\usepackage[svgnames]{xcolor}
\usepackage{fourier-otf}
\begin{document}
\begin{luadraw}{name=insphere_cone}
local ld = luadraw
local pt3d = ld.pt3d
local M, Origin, vecK = pt3d.M, pt3d.Origin, pt3d.vecK
require 'luadraw_spherical'
local g = ld.graph3d:new{
window3d = {-5,5,-5,5,-5,5},
windows = {-4,4,-4,4},
viewdir = {0,80}, size={10,10}
}
local sM = ld.sM
local A,B,P = sM(-30,140), sM(150,140), sM(0,0)
local O1 = (A+B)/2
ld.Hiddenlines = true; ld.Hiddenlinestyle = "dashed"
g:Define_sphere{ color = "",edgecolor = "black",edgewidth = 8 }
-- g:DSpolyline({A,B},{style="dashed",width=8})
-- g:DSpolyline({{O1,P},{Origin,A}},{color="red",style="dashed",width=8})
local vecn = pt3d.prod(A,B)
g:Dcone(O1,pt3d.abs(B-A)/2,P,{edgewidth=8, hiddenstyle="dashed", color="magenta", opacity=0.5})
g:DScircle({Origin,vecn});g:DScircle({Origin,vecK},{width=8});
g:Dspherical()
g:Dcircle3d(Origin,3,vecn,"draw=none,fill=blue!25, fill opacity=0.4")
g:Dpolyline3d({A,B},"dashed,thick")
g:Dpolyline3d({{O1,P},{Origin,A}},"dashed,red,thick")
g:Dballdots3d({Origin,O1,A,B,P},"red")
g:Dlabel3d(
"$O$",Origin,{pos="E"},
"$O_1$",O1,{pos="SE"},
"$B$",B,{},
"$A$",A,{pos="SW"},
"$r$",(O1+A)/2,{pos="N"},
"$P$",P,{},
"$R$",P/2,{pos="E",node_options="text=red"},
"$R$",A/2,{pos="W"},
"$h$",O1/2,{pos="E"}
)
g:Show()
\end{luadraw}
\end{document}