PSTricks 剪辑

PSTricks 剪辑

考虑一下这个图画:

通缉

我如何使用 PSTricks 绘制这个?(条纹的宽度不相等,如果这很重要的话。)

我想我必须以某种方式使用剪辑,但我甚至不知道如何正确开始。我所拥有的只是以下废话:

% lualatex test.tex

\DocumentMetadata{}

\documentclass{article}

\usepackage{pstricks}


\begin{document}

\begin{figure}
 \centering
 \def\radius{3}%
 \def\trop{0.2}%
 \def\subtrop{0.25}%
 \def\temp{0.35}%
 \def\polar{0.2}%
  \begin{pspicture}(-\radius,-\radius)(\radius,\radius)
    \psclip{
      \pscustom{
        \psarc(0,0){\radius}{0}{\fpeval{round(asind(\trop),9)}}
        \psline(\fpeval{-sqrt(\radius^2-(\trop*\radius)^2)},\fpeval{\trop*\radius})
               (\fpeval{ sqrt(\radius^2-(\trop*\radius)^2)},\fpeval{\trop*\radius})
        \psarc(0,0){\radius}{\fpeval{180-round(asind(\trop),9)}}{180}
        \psline(-\radius,0)(\radius,0)
      }
      \psframe*[fillcolor = red](-\radius,0)(\radius,\fpeval{\trop*\radius})
    }
    \endpsclip
    \rput(0,\fpeval{\trop/2*\radius}){Tropisk klimbælte}
  \end{pspicture}
\end{figure}

\end{document}

这只是给出了黑色条纹而不是红色条纹。:-(

PS:别介意文字;重要的是水平的彩色条纹。

答案1

格式\psclip如下:

\psclip{<graphic>}
  <stuff>
\endpsclip

<stuff>根据 进行裁剪<graphic>。因此,绘制所需地球的一种方法是使用\psframe(无填充或线条)作为<graphic>,然后只需\pscircle以所需颜色绘制常规。为了简化代码,我创建了 ,从到 的部分\drawearth{<from>}{<to>}{<colour>}{<text>}绘制地球部分。<from><to>\radius

在此处输入图片描述

\documentclass{article}

\usepackage{pstricks,multido}

\newcommand{\drawearth}[4]{%
  % #1 = from, #2 = to, #3 = colour, #4 = note
  \psclip{\psframe[linestyle=none,linewidth=0pt,fillstyle=none](-\radius,#1)(\radius,#2)}
    \pscircle[linestyle=none,linewidth=0pt,fillstyle=solid,fillcolor=#3](0,0){\radius}
  \endpsclip
  \rput(0,\fpeval{(#1+#2)/2}){#4}
}

\begin{document}

\begin{figure}
  \centering
  \def\radius{3}%
  \def\trop{0.2}%
  \def\subtrop{0.25}%
  \def\temp{0.35}%
  \def\polar{0.2}%
  \begin{pspicture}(-\radius,-\radius)(\radius,\radius)
    \multido{\iA=1+1}{2}{%
      \drawearth{\fpeval{(1-\polar)*\radius}}{\radius}{blue}{Polar}
      \drawearth{\fpeval{(1-\polar-\temp)*\radius}}{\fpeval{(1-\polar)*\radius}}{green}{Temperate}
      \drawearth{\fpeval{\trop*\radius}}{\fpeval{(\trop+\subtrop)*\radius}}{yellow}{Sub-tropic}
      \drawearth{0}{\fpeval{\trop*\radius}}{red}{Tropic}
      \psset{unit=-1}% Reverse direction
    }
  \end{pspicture}
\end{figure}

\end{document}

由于图像是对称的,因此发出\psset{unit=-1}一半的代码就可以复制地球的下半部分。

相关内容