
是否可以用類似於此圖像中的水彩畫的顏色填滿形狀
使用 tikz 或 pgfplots?
來源:http://bartoszmilewski.com/2015/07/29/representable-functors/
答案1
有一些“廉價”的方法來產生複雜的圖片。但作為鈦kZ手冊說,
它們是最不便攜帶的,並且給渲染器帶來了最重的負擔。它們速度很慢,可能無法正確列印!
\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
.但一旦你有了二維數組,就值得一試。