
Можно ли залить фигуру цветом, похожим на акварель, как на этом изображении?
используете 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
Принцип акварели заключается в том, что молекулы пигмента бегут по холсту и замедляются с течением времени. Поэтому, возможно, лучшим способом имитации акварели является численное решение уравнения в частных производных. Это не допускается в \pgfdeclarefunctionalshading
. Но стоит попробовать, если у вас есть двумерный массив.