使用 TikZ 制作螺旋状文本

使用 TikZ 制作螺旋状文本

我刚刚遇到这个问题,我很好奇它是否可以在 TeX 中复制......

在此处输入图片描述

理想情况下,螺旋越靠近中心,就会越紧,就像

在此处输入图片描述

我知道 TikZ 有让文本沿路径排列的功能,但我不确定如何让文本变得越来越小。我能找到的最接近的方法是创造优雅的数字和符号显示,但这使用了手动插入的字体命令。

编辑:我使用 mwibrow 的答案得到了我想要的东西:

姆维布罗

答案1

(text effects along path在 PGF 3.0 中) 可以很容易地做到这一点(虽然有点慢):

\documentclass[tikz,border=5]{standalone}
\usetikzlibrary{decorations.text}
\begin{document}
\begin{tikzpicture}[
  decoration={
    reverse path,
    text effects along path,
    text={Lorem ipsum dolor sit amet, consectetur adipisicing elit, 
      sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 
      Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
      nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in
      reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
      pariatur. Excepteur sint occaecat cupidatat non proident, sunt
      inculpa qui officia deserunt mollit anim id est laborum.},
    text effects/.cd,
      text along path,
      character count=\i, character total=\n,
      characters={scale=1-\i/\n}
    }
]
\draw [decorate] (0,0) 
    \foreach \i [evaluate={\r=(\i/2000)^2;}] in {0,5,...,2880}{ -- (\i:\r)}; 
\end{tikzpicture}
\end{document}

在此处输入图片描述

对于 3.0 之前的 PGF 版本,请参阅编辑历史,其中描述了简单的破解方法。

答案2

运行latex-> dvips->ps2pdf

\documentclass[12pt]{article}
\usepackage{pst-plot}
\usepackage{pst-text}
\usepackage{lipsum}

\pagestyle{empty}
\begin{document}
\large
\begin{pspicture}(-3.8,-5)(4.5,4.5)
\pstextpath{%
  \parametricplot[linestyle=none,plotpoints=5000,algebraic,unit=0.25]
    {0}{200}{t^2*sin(t)/200 | t^2*cos(t)/200}}{\lipsum[1]}%
\end{pspicture}

\end{document}

在此处输入图片描述

也可以增加字体大小,但我们必须处理每个字符。

在此处输入图片描述

\documentclass[pstricks]{standalone}
\usepackage[T1]{fontenc}
\usepackage{mathptmx}
\usepackage{pst-plot}
\usepackage{pst-text}

\newdimen\MyDim \MyDim=30pt
\makeatletter
\def\doPerChar#1#2\@nil{%
    \CharacterAction{#1}%
    \ifx\relax#2\relax\else\doPerChar#2\@nil\fi}
\def\perChar#1{\doPerChar#1\@nil}
\def\CharacterAction#1{%
  \fontsize{\MyDim}{1.1\MyDim}\selectfont#1%
  \global\advance\MyDim by -0.175pt}
\makeatother

\pagestyle{empty}
\begin{document}

\begin{pspicture}(-3,-3)(3,3)
\pstextpath{%
  \parametricplot[linestyle=none,plotpoints=5000,algebraic,unit=0.2]
    {50}{0}[/A 5e-3 def ]{A*(cos(t)+t^2*sin(t)) | A*(sin(t)-t^2*cos(t))}}{\perChar{Now~we~write~some~nensense~text~here~to~write~it~on~%
        an~involute~only~to~see~what~happens~with~this~nonsense~text~%
        in~this~nonsense~example!}}
\end{pspicture}

\end{document}

相关内容