如何绘制球的内接圆锥?

发布于 2026-09-22 01:37:53

如题,希望绘制这个球的内接圆锥:

image.png

查看更多

关注者
0
被浏览
18
1 个回答
Sagittarius Rover
Sagittarius Rover 4小时前
这家伙很懒,什么也没写!

中规中矩吧.....

\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}

image.png

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览