多语言展示
当前在线:1465今日阅读:6今日分享:31

《WHY数学图像生成器》绘制精美的壁纸图案

本文,我介绍几个漂亮的壁纸,以及相应的“代码”。我不是这些图案的发明人,我只是一个“搬运工”。
工具/原料
1

电脑

2

WHY数学图像生成器

多边形渐变图案
1

第一幅图的代码如下图。长代码就不贴出来了,读者见谅。

3

纵向的图案,隐含着横向图形的渐变:pixels = W:1024 H:1024x = from -1 to 1 Wy = from -1 to 1 Ht = 21.34r = 0g = sin(x*12.0+sin(x*50.0)*(4.0*sin(10.0 + t*2.0))+sin(10.0 + (t+10.0)*2.0*y)*2.0)b = 0

眩晕图案
1

这里给出一个眩晕图案,因为代码较简短,所以贴出来:pixels = W:500 H:500x = from 0 to 20 Wy = from 0 to 20 Ht = sign(cos(length2(ceil(x), ceil(y))*99.0))x = x*tx = fract(x)y = fract(y)r = cos(min(length2(x, y), length2(x-1, y-1))*44.0)g = 0.5b =0.5

2

用下图的代码,可以得到另一种眩晕效果:

3

简单的图形重复排列,也能产生眩晕效果。

4

还有这个圆形重复图案:pixels = W:500 H:500x = from -16 to 16 Wy = from -16 to 16 Hfx = fract(x)fy = fract(y)size = 0.4w = length2(fx - 0.5, fy - 0.5) - sizek = clamp(0, 1, w/0.06)r = 0g = 2*kb = 0.9

极坐标图案
1

这是一个类似于反演的图案:pixels = W:500 H:500x = from -1 to 1 Wy = from -1 to 1 Hax = x + 0.5bx = x - 0.5s = 365a = sin(length2(ax, y)*s) -sin(length2(bx, y)*s)b = atan2(y, ax) -atan2(y, bx)r = 2*a*cos(3*b)g = 6*a*sin(2*b)b = 0.16

2

飘落的雪花。

对称图案
1

下面的炫图,明显关于对角线对称。pixels = W:1024 H:1024x = from -4 to 4 Wy = from -4 to 4 Ht = reflect2d_x(sin(x), sin(y), cos(x), cos(y))y = reflect2d_y(sin(x), sin(y), cos(x), cos(y))x = tt = reflect2d_x(sin(x), sin(y), cos(x), cos(y))y = reflect2d_y(sin(x), sin(y), cos(x), cos(y))x = tt = reflect2d_x(sin(x), sin(y), cos(x), cos(y))y = reflect2d_y(sin(x), sin(y), cos(x), cos(y))x = tr = cos(x*10)*0.5g = cos(y*10)*0.5+0.5b = cos(length2(x,y)*4)*0.5+0.5

2

同心圆图案:pixels = W:500 H:500x = from 0 to 6 Wy = from 0 to 6 Hpx = mod(x * 8.0, 4.0) - 2.0py = mod(y * 8.0, 4.0) - 2.0h = length2(px, py)k =  sin(h*16)r = 2*kg = 0.36*kb = 0.5*k

3

让人心明眼亮的图案:

4

炫彩的波浪线,看着就想一个个的正弦曲线。

水波荡漾
1

这个图,看着就像是波光粼粼的水面。

2

但是图案一旦出现重复,看着就不那么真实了。

3

这得多剧烈的震动,才能把水面月光弄成这样?代码反倒很简单:pixels = W:1024 H:1024x = from -2.5 to 2.5 Wy = from -2.5 to 2.5 Ha = 1.5p = 10.0t = 1.156u = x/cos(y*p-t)/p*av = y/sin(x*p-t)/p*ad = 0.1/(u*u + v*v)r = mix(1.0/d, d, 1.0)g = mix(1.0/d, d, 3.0)b = mix(1.0/d, d, 5.0)

沙漠

沙漠,给人的感觉,就是一个沙浪滚滚的景象。为了不那么干燥,特意变色为浅绿:pixels = W:500 H:500x = from -32 to 32 Wy = from -32 to 32 Hk = sin(x*y*0.2+cos(y*0.4)*7.0)*0.5+0.5r = kg = 2b = 0

注意事项

一下子搬运了很多,有点看不过来了。

推荐信息