当scale=1,显示效果是对的,如下图蓝色直线

可是当我设置为scale=0.5,我以为会以直线中心为基准,两侧同时缩短,直至直线长度为原来的一半,但结果是偏移到左下角了,如下图,这是为什么呢?

需要提供上述代码...不然没有人能回答...
没有代码其实很难猜测...但要注意的是,对于g:Dline3d方法,并没有scale选项...我在这里提过类似的议题,作者说请改用g:Dseg3d:
\documentclass[]{standalone}
\usepackage[3d]{luadraw}
\usepackage[svgnames]{xcolor}
\usepackage{fourier-otf}
\begin{document}
\begin{luadraw}{name=Dline_scale}
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 = {-2,5,-1,4},
viewdir = {"yz",0.75,40}
}
g:Dpolyline3d({{Origin,2*vecI},{Origin,4*vecJ},{Origin,4*vecK}},"semithick,-Stealth")
g:Dline3d({3*vecK,vecJ},"teal,thick")
g:Dseg3d({2*vecK-vecJ,2*vecK+vecJ},1,"magenta,thick")
g:Dseg3d({vecK-vecJ,vecK+vecJ},0.5,"cyan,thick")
g:Show()
\end{luadraw}
\end{document}