Here below is the proposal of luadraw:
Some details need to be tweaked by yrself.
% https://ask.latexstudio.net/ask/question/8020.html
\documentclass{standalone}
\usepackage[fontset=fandol]{ctex}
\usepackage[3d]{luadraw}
\usepackage[svgnames]{xcolor}
\usepackage{fourier}
\begin{document}
\begin{luadraw}{name=earth_tilted_system}
local g = graph3d:new{
window3d={-8,8,-8,8,-6,6},
window = {-8,9,-6,6},
size={10,10}, viewdir={0,80},
pictureoptions = "line cap=round"
}
-- first half plane
g:Dpath3d(
{M(0,-7,0),M(-8,-6,0), M(-8,8,0), M(0,7,0),"l", 4*vecJ, "m", Origin, -4*vecJ, 4, 1, vecK, "ca"},
"fill=yellow!15, fill opacity=1, draw=orange, line width=0.5pt"
)
g:Darc3d(4*vecJ, Origin, -4*vecJ, 4, 1, vecK, "teal, line width=0.5pt") -- inner edge
-- Rotate3d alter the transfoemmation matrix
g:Saveattr()
g:Rotate3d(-23.26, {Origin, vecI})
g:Dcircle3d(Origin, 4, vecK, "fill=yellow, draw=orange, line width=0.5pt")
g:Dsphere(Origin, 4, {mode=mBorder, edgecolor="cyan", edgewidth=10})
g:Restoreattr()
-- second half plane
g:Dpath3d(
{M(0,-7,0),M(8,-8,0), M(8,6,0), M(0,7,0),"l", 4*vecJ, "m", Origin, -4*vecJ, 4, -1, vecK, "ca"},
"fill=yellow!15, fill opacity=1, draw=orange, line width=0.5pt"
)
g:Darc3d(4*vecJ, Origin, -4*vecJ, 4, -1, vecK, "teal, line width=0.5pt") -- outer edge
-- hidden lines
g:Dcircle3d(Origin, 4, g.Normal, "dashed,cyan,line width=0.8pt")
g:Dcircle3d(Origin, 4, vecK, "dashed,teal")
-- Rotate3d alter the transfoemmation matrix again
g:Saveattr()
g:Rotate3d(-23.26, {Origin, vecI})
-- hidden ellipse
-- g:Dcircle3d(Origin, 4, vecK, "orange,dashed")
-- the z-axis
g:Dline3d({-1.5 * vecK, 1.5 * vecK}, "black, dashed, line width=0.8pt")
-- the rotated y-axis
g:Dseg3d({Origin, 8 * vecJ}, "teal, dashed, line width=0.8pt")
g:Dlabel3d(
"赤道平面", M(0.5,-2,0), {dir={vecJ,M(-8,1,0)},node_options="scale=0.75"}
)
g:Restoreattr()
-- magenta segments
g:Dseg3d({Origin, 4 * vecJ}, "magenta, dashed, line width=0.8pt")
g:Dseg3d({8*vecJ, 4 * vecJ}, "magenta, line width=0.8pt")
-- arc3d
g:Darc3d(5 * vecJ, Origin, Ms(4,90*deg,23.26*deg),5,1, "red,latex-latex") -- 90*deg = pi/2 (radians)
g:Darc3d(8*vecJ, Origin, Ms(4,90*deg,(90+23.26)*deg),8,1, "red,latex-latex")
g:Dlabel3d(
"黄道平面", M(5,-6,0), {dir={vecJ,M(-8,1,0)},node_options="scale=0.75"},
"$66^\\circ 34'$", Ms(5,90*deg,(45+23.26/2)*deg), {
node_options="fill=white,inner sep=1.5pt",
dir={Ms(1,90*deg,(135+23.26/2)*deg), Ms(1,90*deg,(45+23.26/2)*deg)}
},
"$23^\\circ 26'$", Ms(8,90*deg,(90+23.26/2)*deg),
{node_options="fill=white,inner sep=1.5pt", dir={Ms(1,90*deg,(180+23.26/2)*deg), Ms(1,90*deg,(90+23.26/2)*deg)}}
)
g:Dlabel(
"黄\\\\赤\\\\交\\\\角", Z(8.75,-1.75,0), {node_options="scale=0.8,text=red,align=left,font=\\bfseries\\linespread{1}\\selectfont"}
)
g:Show()
\end{luadraw}
\end{document}
Environment scope undefined. ^^Iplanet[surface=sun]
Environment scope undefined. ^^Iplanet[surface=sun]
Undefined control sequence. ^^Iplanet[surface=sun]
Undefined control sequence. ^^Iplanet[surface=sun]
begin{document} ended by end{scope}. ^^Iplanet[surface=sun]
begin{document} ended by end{scope}. ^^Iplanet[surface=sun]
planets.sty
@u13359 建议把报错信息也用代码块。
这里提示的是
scope未定义,这是因为\planet需要在tikzpicture环境内生效。同时...
ctexart,xcolor,pgfkeys,xstring都和你的问题无关。而且宏包也在CTAN上,无需单独提供。当然,这跟你的原图还有很大的区别,这个包只能插入相对固定的图。