渐变矩形

渐变矩形

请参阅以下 MWE 我正在尝试为以下任务寻找解决方案。

外部矩形应以白色开始,内部矩形也应以白色开始。中间的矩形仅用于演示目的,颜色应为红色。

内矩形和外矩形之间的区域应着色(白色 - 红色 - 白色),且内矩形的区域应保持白色。

我正在玩 pst-grad 和 pst-slpe,但我无法以正确的方式处理这个问题。

\PassOptionsToPackage{dvipsnames}{xcolor}
\documentclass{article}

\usepackage{pst-node}
\usepackage{pst-blur}
\usepackage{pst-grad}
\usepackage{pst-slpe}
\usepackage{multido, pst-intersect, pst-tools,multicol}
\usepackage{pstricks-add}

\usepackage[a4paper,margin=0cm]{geometry}
\usepackage{auto-pst-pdf}

\begin{document}

\begin{pspicture}[showgrid=false](-1.25,0)(50,-32)
\rput(0,-2.5){\psframe[linecolor=black!10,fillstyle=none,fading,slopebegin=white,slopeend=white](-1.25,0)(18.5,-29.0)}

\rput(0,-2.5){\psframe[linecolor=red,fillstyle=none,fading,slopebegin=white,slopeend=white](-0.25,-1)(17.5,-28.0)}

\rput(0,-2.5){\psframe[linecolor=black!10,fillstyle=solid,fillcolor=white](0.75,-2)(16.5,-27.0)}
\end{pspicture}

\end{document}

有任何想法吗?

答案1

这是 TiZ 解决方案。如果您需要坚持pstricks,也许可以在那里应用相同的方法,基本上就是填充整个矩形,然后填充 4 个梯形以形成边框。(但当然,边框可以比中间的部分大。这只是我的想法。)

\documentclass[border=10pt,multi,tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  [
    vshade/.style={bottom color=white, top color=white, middle color=red},
    hshade/.style={left color=white, right color=white, middle color=red},
  ]
  \def\borderwidth{10pt}
  \fill [white] (-5,-3) coordinate (d) rectangle (5,3) coordinate (b);
  \shade [vshade] (d |- b) coordinate (a) -- (b) -- +(\borderwidth,\borderwidth) coordinate (B) -- (a |- B) -- +(-\borderwidth,0) coordinate (A) -- cycle;
  \shade [vshade] (d) -- (d -| b) coordinate (c) -- +(\borderwidth,-\borderwidth) coordinate (C) -- (d |- C) -- +(-\borderwidth,0) coordinate (D) -- cycle;
  \shade [hshade] (D) -- (A) -- (a) -- (d) -- cycle;
  \shade [hshade] (C) -- (B) -- (b) -- (c) -- cycle;
\end{tikzpicture}
\end{document}

tikz 解决方案

相关内容