\documentclass[tikz,border=10pt]{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usepackage{amsmath}
\usepackage{ctex}
\usetikzlibrary{arrows.meta, calc, fadings, positioning}


% 注意：原来的 \tdplotsetmaincoords 在这里，会被忽略！

\begin{document} % --- 正文开始 ---

\tdplotsetmaincoords{65}{115} 

\begin{tikzpicture}[
    tdplot_main_coords,
    scale=2.5,
    grid line/.style={very thin, cyan!40!white, opacity=0.5},
    base surface/.style={fill=cyan!10, opacity=0.7},
    fiber/.style={-{Latex[length=2mm]}, orange!90!red, thick, opacity=0.8},
    fiber base/.style={circle, fill=cyan!80!black, inner sep=0.8pt},
    section curve/.style={ultra thick, red!90!black, line cap=round},
    projection/.style={dashed, blue!60!black, thick, opacity=0.7},
    label text/.style={fill=white, fill opacity=0.7, text opacity=1, inner sep=2pt, align=left, font=\sffamily}
]

    % 定义曲面高度函数
    \newcommand{\zval}[2]{0.3*sin(#1*70)*cos(#2*70)}

    % ==========================================
    % 1. 绘制底流形
    % ==========================================
    \foreach \x in {-1.5,-1.25,...,1.5} {
        \foreach \y in {-1.5,-1.25,...,1.5} {
            \pgfmathsetmacro{\zA}{\zval{\x}{\y}}
            \pgfmathsetmacro{\zB}{\zval{\x+0.25}{\y}}
            \pgfmathsetmacro{\zC}{\zval{\x+0.25}{\y+0.25}}
            \pgfmathsetmacro{\zD}{\zval{\x}{\y+0.25}}
            
            \coordinate (A) at (\x, \y, \zA);
            \coordinate (B) at (\x+0.25, \y, \zB);
            \coordinate (C) at (\x+0.25, \y+0.25, \zC);
            \coordinate (D) at (\x, \y+0.25, \zD);
            
            \fill[base surface] (A) -- (B) -- (C) -- (D) -- cycle;
            \draw[grid line] (A) -- (B) -- (C) -- (D) -- cycle;
        }
    }
    
    % 底流形轮廓
    \draw[thick, cyan!60!black] plot[domain=-1.5:1.5, samples=60, smooth] (\x, -1.5, {0.3*sin(\x*70)*cos(-1.5*70)});
    \draw[thick, cyan!60!black] plot[domain=-1.5:1.5, samples=60, smooth] (1.5, \x, {0.3*sin(1.5*70)*cos(\x*70)});
    \draw[thick, cyan!60!black] plot[domain=-1.5:1.5, samples=60, smooth] (\x, 1.5, {0.3*sin(\x*70)*cos(1.5*70)});
    \draw[thick, cyan!60!black] plot[domain=-1.5:1.5, samples=60, smooth] (-1.5, \x, {0.3*sin(-1.5*70)*cos(\x*70)});

    % ==========================================
    % 2. 绘制纤维
    % ==========================================
    \coordinate (FiberLabelTarget) at (0,0,0);

    \foreach \x in {-1.0, -0.5, ..., 1.0} {
        \foreach \y in {-1.0, -0.5, ..., 1.0} {
            \pgfmathsetmacro{\zpos}{\zval{\x}{\y}}
            \coordinate (Base) at (\x, \y, \zpos);
            \pgfmathsetmacro{\h}{1.0 + 0.3*cos(\x*120 + \y*120)}
            \coordinate (Top) at (\x, \y, \zpos + \h);
            
            \node[fiber base] at (Base) {};
            \draw[fiber] (Base) -- (Top);

            % 选取左侧的一根纤维作为标注目标
            \ifdim \x pt = -1.0 pt
                \ifdim \y pt = -0.5 pt
                    \coordinate (FiberLabelTarget) at (Top);
                \fi
            \fi
        }
    }

    % ==========================================
    % 3. 绘制截面与投影
    % ==========================================
    \draw[projection] plot[domain=-1.2:1.2, samples=60, variable=\t] 
        ({\t}, {0.5*\t}, {0.3*sin(\t*70)*cos(0.5*\t*70)});
    
    \draw[section curve] plot[domain=-1.2:1.2, samples=60, variable=\t] 
        (
            {\t}, 
            {0.5*\t}, 
            {0.3*sin(\t*70)*cos(0.5*\t*70) + 1.0 + 0.3*cos(\t*120 + 0.5*\t*120)}
        );

    \coordinate (P_top) at (0.8, 0.4, {0.3*sin(0.8*70)*cos(0.4*70) + 1.0 + 0.3*cos(0.8*120 + 0.4*120)});
    \coordinate (P_base) at (0.8, 0.4, {0.3*sin(0.8*70)*cos(0.4*70)});
    \draw[projection, thin] (P_top) -- (P_base);

    % ==========================================
    % 4. 标注层 (坐标已压缩，更加紧凑)
    % ==========================================
    
    % 4.1 底流形
    \node[label text, anchor=north west] at (1.6, -1.6, 0) {
        \textcolor{cyan!40!black}{\textbf{$\mathcal{M}$ (底流形)}} \\[-2pt]
        \scriptsize \textcolor{gray}{Geometry / Logic}
    };

    % 4.2 [修改] 纤维标注 (F) -> 大幅降低高度 (Z: 3.2 -> 2.2)
    % 坐标调整：更靠近中心
    \draw[->, orange!90!red, thick] (-1.3, -1.0, 2.2) node[label text, anchor=east] {
        \textcolor{orange!90!red}{\textbf{$F$ (质/纤维)}} \\[-2pt]
        \scriptsize \textcolor{gray}{Qualia / Energy}
    } -- (FiberLabelTarget);

    % 4.3 [修改] 实体截面标注 (sigma) -> 大幅降低高度 (Z: 3.5 -> 2.4)
    % 坐标调整：更靠近中心
    \coordinate (SectionRight) at (0.8, 0.4, {1.0 + 0.4}); 
    \draw[->, red!80!black, thick] (1.1, 1.1, 2.4) node[label text, anchor=west] {
        \textcolor{red!80!black}{\textbf{$\sigma$ (实体截面)}} \\[-2pt]
        \scriptsize $\Psi = \text{Shape} \otimes \text{Quality}$
    } -- (SectionRight);

    % 4.4 投影算子
    \draw[->, blue!60!black, thick] (1.5, 0.5, 0.8) node[label text, right] {
        \textcolor{blue!60!black}{\textbf{$\pi$ (投影)}}
    } -- (P_base);

\end{tikzpicture}

\end{document}