如何为书籍制作数字螺旋封面?

如何为书籍制作数字螺旋封面?

更新:我目前正在用我数学老师自出版的数学教科书重写新版本。我在网上搜索过类似的数字螺旋封面问题,但没有找到令人满意的东西。我从中获得了灵感此图来自 Shutterstock。我希望它看起来有点像这样:

如您所见,我希望数字以这种特定方式螺旋。但我有以下代码:

\documentclass{book}
\usepackage{tikz}
\usepackage{xcolor}

\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Georgia}
\setsansfont[Ligatures=TeX]{Arial}

\usepackage{pgfmath}

\newcommand\randmin{0}
\newcommand\randmax{9}

\newcommand\setValues[1]{
    \pgfmathparse{%
        #1 / 3 + 36
    }%
   \xdef\curFontSize{\pgfmathresult}%

    \pgfmathparse{%
        int( rnd * ( \randmax - \randmin + 1 ) + \randmin )
    }%
   \xdef\curRand{\pgfmathresult}%

    \pgfmathparse{%
        #1 * 2 + 360 / (#1 + 0.1)
    }%
   \xdef\curAngle{\pgfmathresult}%

    \pgfmathparse{%
        rnd * 180 + \curAngle + 90
    }%
   \xdef\curJitter{\pgfmathresult}%

    \pgfmathparse{%
        rnd * 10 + #1 - 5
    }%
   \xdef\curRadius{\pgfmathresult}%
}

\begin{document}
    \begin{tikzpicture}[
        overlay, 
        remember picture, 
        shift={(current page.center)},
        number spiral/.style={
            text=blue,
            opacity=0.5,
        }
    ]
        \foreach \a [count=\r] in {0, 5, ..., 180} {
            \setValues{\a}
            \node[
                number spiral,
                rotate=\curJitter,
                font=\fontsize{\curFontSize pt}{\curFontSize pt}\selectfont\bfseries
            ] at (\curAngle:\curRadius mm) {\curRand{}};
        }
        \foreach \a [count=\r] in {0, 13, ..., 180} {
            \setValues{\a}
            \node[
                number spiral,
                text=orange,
                opacity=0.7,
                rotate=\curJitter,
                font=\fontsize{\curFontSize pt}{\curFontSize pt}\selectfont\bfseries
            ] at (\curAngle:\curRadius mm) {\curRand{}};
        }
        
    \end{tikzpicture}
\end{document}

结果是:

注意包的使用fontspec;需要 LuaLaTeX 或 XeLaTeX。

相关内容