30 luadraw画了平躺着的棱柱,实虚开始部分

发布于 2026-09-23 19:37:16

我希望(0,0,0)出发的三条棱是虚线,而下图中的那条棱在斜二测下应为实现才对,可实际为虚线,这是为什么?

%!LW recipe=lualatex
\documentclass{standalone}
\usepackage[3d]{luadraw}
\usepackage[svgnames]{xcolor}

\begin{document}
\begin{luadraw}{name=prism}
    local ld = luadraw
    local pt3d = ld.pt3d
    local M=pt3d.M
    local g = ld.graph3d:new{
        size={8,8},
        bbox=false,
        viewdir={"yz",0.5,45}
    }

    local base = { M(0,0,0), M(2,0,0), M(0,0,2) }--底面变量
    local prism = ld.prism(base, M(0,3,0))
    
    g:Dpoly(prism,{--画棱柱
        mode=ld.mWireframe,
        hiddenstyle="dashed",
        edgestyle="solid"
    })
    g:Ddots3d(M(0,0,2),"blue")

    g:Show()
\end{luadraw}
\end{document}

00000.png

查看更多

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

注意右手定则,看注释...

\documentclass[border=5pt]{standalone}
\usepackage[3d]{luadraw}
\usepackage[svgnames]{xcolor}

\begin{document}
\begin{luadraw}{name=prism}
    local ld = luadraw
    local pt3d = ld.pt3d
    local M = pt3d.M
    local g = ld.graph3d:new{
        window3d={-5,5,-5,5,-5,5},
        windows={-5,5,-5,5},
        size={8,8},
        bbox=false,
        viewdir={"yz",0.5,45}
        -- viewdir={30,70}
    }

    -- local base = { M(0,0,0), M(2,0,0), M(0,0,2) }
    local base = { M(0,0,0), M(0,0,2), M(2,0,0) } -- 右手定则
    -- M(0,0,2), M(2,0,0)在右手法则下应该与 (0,3,0) 通向
    local prism = ld.prism(base, M(0,3,0))
    
    g:Dpoly(prism,{
        mode=ld.mWireframe,
        hiddenstyle="dashed",
        -- edgestyle="solid"
    })
    g:Ddots3d(M(0,0,2),"blue")

    g:Show()
\end{luadraw}
\end{document}

image.png

撰写答案

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

发布
问题

分享
好友

手机
浏览

扫码手机浏览