如何绘制棱柱的外接球?

发布于 2026-09-23 23:03:16

如图,如何绘制棱柱的外接球:

image.png

查看更多

关注者
0
被浏览
11
1 个回答
Sagittarius Rover
Sagittarius Rover 2小时前
这家伙很懒,什么也没写!
\documentclass{standalone}
\usepackage[3d]{luadraw}
\usepackage[svgnames]{xcolor}
\usepackage{fourier-otf}
\begin{document}
    \begin{luadraw}{name=prism_sphere}
    local ld = luadraw
    local pt3d, cpx = ld.pt3d, ld.cpx
    local M, Mc, Ms = pt3d.M, pt3d.Mc, pt3d.Ms
    local Origin, vecI, vecJ, vecK = pt3d.Origin, pt3d.vecI, pt3d.vecJ, pt3d.vecK
    local g = ld.graph3d:new{
        window3d = {-5,5,-5,5,-5,5},
        window = {-5,5,-5,5},
        -- adjust2d = true, 
        viewdir = {0,75}
    }
    require 'luadraw_spherical'
    local sM = ld.sM
    ld.Hiddenlines = true;ld.Hiddenlinestyle = "dashed"
    g:Define_sphere{ color = "", edgewidth=10, edgecolor="black" }
    local h = 2.25
    local O1,O2 = M(0,0,h),M(0,0,-h)
    local r = math.sqrt(3^2-h^2)
    local t1, t2, t3 = -80*ld.deg, 45*ld.deg, 150*ld.deg
    local A,B,C = Mc(r,t1,-h), Mc(r,t2,-h), Mc(r,t3,-h)
    local A1,B1,C1 = Mc(r,t1,h), Mc(r,t2,h), Mc(r,t3,h)
    g:DScircle({Origin,vecK},{width=6})
    local P = ld.facet2poly( ld.cvx_hull3d({A,B,C,A1,B1,C1}) )
    g:Dcircle3d(O2,r,vecK,"draw=none,fill=blue!25, fill opacity=0.4") -- lower circle
    g:DScircle({O2,vecK},{width=8})
    g:Dpoly(P,{color="violet!30!white",mode=ld.mFlatHidden,edgewidth=8,hiddenstyle="dashed"})
    g:Dcircle3d(O2,r,vecK,"draw=none,fill=blue!25, fill opacity=0.4") -- upper circle
    g:DScircle({O1,vecK},{width=8})
    g:Dspherical()
    g:Dballdots3d({Origin,O1,O2},"red")
    g:Dpolyline3d({C1,O1,O2,A},"blue!75,dashed,semithick")
    g:Dpolyline3d({C1,Origin,A},"red,dashed,semithick")
    g:Dlabel3d(
        "$O$",Origin,{pos="E"},
        "$O_1$",O1,{pos="W"},
        "$O_2$",O2,{pos="E"},
        "$A$",A,{pos="SW"},
        "$B$",B,{pos="SE"},
        "$C$",C,{pos="NE"},
        "$A_1$",A1,{pos="NW"},
        "$B_1$",B1,{pos="SE"},
        "$C_1$",C1,{pos="NE"},
        "$r$",(O1+C1)/2,{pos="",node_options="text=blue"},
        "$r$",A/6+5*O2/6,{},
        "$h$",O1/4,{pos="W"},
        "$R$",C1/2,{pos="E",node_options="text=red"},
        "$R$",2*A/5,{pos="N",dist=0.15}
    )
    g:Show()
\end{luadraw}
\end{document}

image.png

撰写答案

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

发布
问题

分享
好友

手机
浏览

扫码手机浏览