使用 shapepar 在地球仪上“覆盖”文字?

使用 shapepar 在地球仪上“覆盖”文字?

是否可以使用shapepar或其他软件包将文本“覆盖”在地球仪上?我使用的代码是:

\usepackage{shapepar}
\usepackage{ulem}
\begin{document}
\Shapepar{\circleshape} \footnotesize{\rmfamily{\uline{blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah}}}\par
\end{document}

得出下图:

在此处输入图片描述

显然,这看起来不像是一个 3D 物体。理想情况下,我希望这串单词能营造出地球仪的幻觉,并带有弯曲的纬线。

非常感谢您的帮助。谢谢。

答案1

我不会手动完成所有操作,但我希望展示这一点能激励人们实现自动化。每个字母都经过水平和垂直缩放,以及倾斜。我手动选择了这些值,但我发现,理论上,的第一个参数\scalebox取决于经度,可选参数\scalebox取决于纬度,而可选\slantbox参数取决于纬度和经度。

我相信这些三角函数在正交投影的很多地方都可以解析得到(https://en.wikipedia.org/wiki/List_of_map_projectionshttps://en.wikipedia.org/wiki/Orthographic_projection_in_cartography)。诀窍在于将给定字母的 (x,y) 位置映射到纬度和经度,然后应用拉伸和倾斜的函数变换来反映该值。

\documentclass{article}
\usepackage{shapepar}
\usepackage{ulem,graphicx,xcolor}
\newsavebox\foobox
\newcommand{\slantbox}[2][30]{%
        \mbox{%
        \global\sbox{\foobox}{\textcolor{red}{#2}}%
        \hskip\wd\foobox
        \pdfsave
        \pdfsetmatrix{1 0 #1 1}%
        \llap{\usebox{\foobox}}%
        \pdfrestore
}}
\begin{document}
\Shapepar{\circleshape} \footnotesize{\rmfamily{\uline{%
\slantbox[2]{\scalebox     {.6}[.5]{b}}%
  \slantbox[1.75]{\scalebox{.8}[.5]{l}}%
  \slantbox[1.33]{\scalebox{.95}[.5]{a}}%
  \slantbox[1]{\scalebox   {.95}[.5]{h}} 
\slantbox[-1]{\scalebox     {.95}[.5]{b}}%
  \slantbox[-1.33]{\scalebox{.95}[.5]{l}}%
  \slantbox[-1.75]{\scalebox{.8}[.5]{a}}%
  \slantbox[-2]{\scalebox   {.6}[.5]{h}} 
%%%%%%
\slantbox[1.8]{\scalebox  {.6}[.65]{b}}%
  \slantbox[1.6]{\scalebox{.7}[.65]{l}}%
  \slantbox[1.5]{\scalebox{.75}[.65]{a}}%
  \slantbox[1.4]{\scalebox{.82}[.65]{h}} 
\slantbox[1.0]{\scalebox  {.86}[.65]{b}}%
  \slantbox[0.8]{\scalebox{.90}[.65]{l}}%
  \slantbox[0.6]{\scalebox{.92}[.65]{a}}%
  \slantbox[0.4]{\scalebox{.94}[.65]{h}} 
blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah}}}\par
\end{document}

在此处输入图片描述

相关内容