使用径向渐变填充正方形

使用径向渐变填充正方形

有了我的 MWE

\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{fadings}
\begin{document}
\begin{tikzpicture}
  \colorlet{ok}{green!25!}
  \colorlet{bad}{red!20!}
  \fill[ok]     (0,0) -- (0,6) -- (6,6) -- (6,0) -- cycle;
  \fill[bad, path fading=south,fading angle=-45]
                (0,0) -- (0,6) -- (6,6) -- (6,0) -- cycle;
  \draw[black]  (0,0) -- (0,6) -- (6,6) -- (6,0) -- (0,0);
\end{tikzpicture}
\end{document}

我得到以下图像(没有黑线): 在此处输入图片描述 我怎样才能实现以左下角为中心的径向淡入淡出效果?只需沿弧线淡入即可,如上图中的黑线所示?

答案1

重写代码,你可以将主正方形用作\clip,然后在左下角放置一个圆,其半径等于正方形的边长。然后可以将 应用于path fading此圆。

另外,从 切换minimalstandalone单一图形。

输出

在此处输入图片描述

代码

\documentclass[margin=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{fadings}
\tikzfading[name=fade out, 
    inner color=transparent!0,
    outer color=transparent!100]

\colorlet{ok}{green!25!}
\colorlet{bad}{red!20!}

\begin{document}
\begin{tikzpicture}
    \clip[preaction={fill=ok, draw=black}] (0,0) rectangle (6,6);
    \fill[bad, path fading=fade out, draw=none] (0,0) circle (6cm);
\end{tikzpicture}
\end{document}

答案2

我认为您正在寻找一个shading

\documentclass[tikz]{standalone}
\usetikzlibrary{shadings}
\makeatletter
\pgfdeclareradialshading[tikz@radial@inner,tikz@radial@outer]%
{sw radial}%
{\pgfqpoint{-50bp}{-50bp}}%
{%
color(0bp)=(tikz@radial@inner);%
color(10bp)=(tikz@radial@outer!5!tikz@radial@inner);%
color(25bp)=(tikz@radial@outer!30!tikz@radial@inner);%
color(40bp)=(tikz@radial@outer!65!tikz@radial@inner);%
color(45bp)=(tikz@radial@outer!85!tikz@radial@inner);%
color(50bp)=(tikz@radial@outer)}
\makeatother
\pgfuseshading{sw radial}

\begin{document}
\begin{tikzpicture}[]

  \shade[inner color=yellow,outer color=blue,shading=sw radial] 
        (0,0) -- (0,6) -- (6,6) -- (6,0) -- cycle;

\end{tikzpicture}
\end{document}

现在,因为我很懒,所以我很快就抢到了预定义radial阴影的定义并摆弄它。这有一个后果:你必须在内部外部颜色规范后写下阴影的名称。否则它会自动假设shading=radial

而且我是色盲,所以你可以更好地调整过渡。

在此处输入图片描述

答案3

我不清楚你想做什么:可能阿莱南诺的建议;可能还有其他东西。以下是一些可能的其他东西。前 3 个似乎是合理的解释。右下角的解释只是因为我没有合理的解释,并且不喜欢由此产生的不对称。

3 理由

\documentclass[border=10pt,multi,tikz]{standalone}% never use minimal for examples - it isn't suitable
\begin{document}
\begin{tikzpicture}
  \colorlet{ok}{green!25!}
  \colorlet{bad}{red!20!}
  \begin{scope}
    \clip (0,0) rectangle (6,6);
    \fill [inner color=ok, outer color=bad] (0,0) circle ({6*(sqrt(2))});
    \draw [black,thick] (0,0) circle (5.5);
  \end{scope}
  \begin{scope}[xshift=65mm]
    \clip (0,0) -- ++(5.5,0) arc (0:90:5.5) -- cycle;
    \fill [inner color=ok, outer color=bad] (0,0) circle ({5.5*(sqrt(2))});
  \end{scope}
  \begin{scope}[yshift=-65mm]
    \clip (6,6) |- ++(-0.5,-6) arc (0:90:5.5) |- cycle;
    \fill [inner color=ok, outer color=bad] (0,0) circle ({6*(sqrt(2))});
  \end{scope}
  \begin{scope}[xshift=65mm,yshift=-65mm]
    \clip (6,6) |- ++(-0.5,-6) arc (0:90:5.5) |- cycle;
    \fill [inner color=ok, outer color=bad] ({2.75*(sqrt(2))},{2.75*(sqrt(2))}) circle ({3.5*(sqrt(2))});
  \end{scope}
\end{tikzpicture}
\end{document}

相关内容