
この画像のように水彩画のような色で図形を塗りつぶすことは可能ですか?
tikz または pgfplots を使用していますか?
出典:http://bartoszmilewski.com/2015/07/29/representable-functors/
答え1
複雑な画像を生成する「安価な」方法がいくつかあります。しかし、TiけZのマニュアルにはこう書いてある。
これらはすべての中で最も移植性が低く、レンダラーに最も大きな負担をかけます。速度が遅く、正しく印刷されない可能性があります。
\documentclass[tikz,border=9]{standalone}
\begin{document}
\pgfdeclarefunctionalshading{watercolor}{\pgfpoint{-25bp}{-25bp}}{\pgfpoint{25bp}{25bp}}{}{
-0.1 0.651
exch 4 2 roll
12.5 div exch 12.5 div 1 index dup mul add
true
{dup dup mul 2 index dup mul sub 3 index add 3 1 roll 2 mul mul 3 index add exch 2 copy dup mul exch dup mul add 4 le}{false}ifelse
{dup dup mul 2 index dup mul sub 3 index add 3 1 roll 2 mul mul 3 index add exch 2 copy dup mul exch dup mul add 4 le}{false}ifelse
{dup dup mul 2 index dup mul sub 3 index add 3 1 roll 2 mul mul 3 index add exch 2 copy dup mul exch dup mul add 4 le}{false}ifelse
{dup dup mul 2 index dup mul sub 3 index add 3 1 roll 2 mul mul 3 index add exch 2 copy dup mul exch dup mul add 4 le}{false}ifelse
{dup dup mul 2 index dup mul sub 3 index add 3 1 roll 2 mul mul 3 index add exch 2 copy dup mul exch dup mul add 4 le}{false}ifelse
{dup dup mul 2 index dup mul sub 3 index add 3 1 roll 2 mul mul 3 index add exch 2 copy dup mul exch dup mul add 4 le}{false}ifelse
{dup dup mul 2 index dup mul sub 3 index add 3 1 roll 2 mul mul 3 index add exch 2 copy dup mul exch dup mul add 4 le}{false}ifelse
{dup dup mul 2 index dup mul sub 3 index add 3 1 roll 2 mul mul 3 index add exch 2 copy dup mul exch dup mul add 4 le}{false}ifelse
{0 0 0}{1 1 1}ifelse
}
\tikz{\shade[shading=watercolor](-10,-10)rectangle(10,10);}
\end{document}
注記
私はこれが水彩画のように見えると主張しているわけではありません。また、そうしようとも思っていません。私は芸術が下手です。ですから、残りはあなたの仕事です。
注2
水彩画の原理は、顔料分子がキャンバス上を流れ、時間が経つにつれて速度が遅くなるというものです。したがって、水彩画をシミュレートする最良の方法は、おそらく PDE を数値的に解くことです。これは では許可されていません\pgfdeclarefunctionalshading
。ただし、2D 配列を取得したら試してみる価値はあります。