考虑一下这个图画:
我如何使用 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}
一半的代码就可以复制地球的下半部分。