前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >有谁能告诉我这图是怎么画出来的?

有谁能告诉我这图是怎么画出来的?

作者头像
巴山学长
发布2019-10-22 15:54:32
6060
发布2019-10-22 15:54:32
举报
文章被收录于专栏:巴山学长巴山学长

小编在一次浏览网页的时候不经意间发现了这张图 —— “HI”,仿佛是向小编打招呼,“你好,我在这儿呢!”如此精妙绝伦的画面小编是从来都不会放过的。可惜,点开图片没找到原始出处,咋办呢?于是开启各种搜图模式,经过几番周折终于找到了根源,原来是工程师Mike Croucher2007年在Walking Randomly上使用Mathematica发布的,数学公式如下:

上式中,要求x∈[-3,3],y∈[-5,5],f(x,y)则限定在[-0.001,0.001]区间内,他公布的图如下:

3年后,他又在Walking Randomly上发布了matlab版。为了让小伙伴们能体验到这个探寻过程,建议大家先不对f(x,y)值做限制,一点一点地减小f(x,y)的取值范围,观察图像的变化情况。

Code Zero (小编版,简单粗暴缺乏美感

代码语言:javascript
复制
clc;clear;close all;
x = -5:0.2:5;
y = -5:0.2:5;
zH = 0.00165778; % 参数来源于Google绘图
[xx,yy] = meshgrid(x,y);
zz = exp(-xx.^2-yy.^2/2).*cos(4*xx)+exp(-4*((xx+0.8).^2+yy.^2/2));
zz(zz>zH) = zH;
zz(zz<0) = 0;
figure('NumberTitle','off','Color','w','MenuBar','none','ToolBar','none');
surf(xx,yy,zz);
colormap cool;
view(25,65);
axis off;

Code one (原版一)

代码语言:javascript
复制
zL = 0.001;
x = linspace(-3,3,50);
y = linspace(-5,5,50);
[X,Y]=meshgrid(x,y);
Z = exp(-X.^2-Y.^2/2).*cos(4*X) + exp(-3*((X+0.5).^2+Y.^2/2));
Z(Z>0.001) = zL;
Z(Z<-0.001) = -zL;
figure('NumberTitle','off','Color','w','MenuBar','none','ToolBar','none');
surf(X,Y,Z);
title({'Secret Messages Hidden Inside Equations',...
       '$e^{-x^2 - \frac{y^2}{2}}\cos(4x) + e^{-3((x+0.5)^2+\frac{y^2}{2})}$'},...
       'Interpreter','latex', 'FontSize',15,'Color','b') 
colormap(flipud(cool))
view([1 -1.5 2])

Code Two (原版二)

代码语言:javascript
复制
zL = 0.001;
[x,y] = meshgrid(linspace(-3,3,50),linspace(-5,5,50) );
z = exp(-x.^2-0.5*y.^2).*cos(4*x) + exp(-3*((x+0.5).^2+0.5*y.^2));
idx = abs(z)>zL;
z(idx) = zL * sign(z(idx)); 
figure('NumberTitle','off','Color','w','MenuBar','none','ToolBar','none');
patch(surf2patch(surf(x,y,z)), 'FaceColor','interp');
set(gca, 'Box','on','XColor',[.3 .3 .3], 'YColor',[.3 .3 .3], 'ZColor',[.3 .3 .3], 'FontSize',8)
title({'Secret Messages Hidden Inside Equations',...
       '$e^{-x^2 - \frac{y^2}{2}}\cos(4x) + e^{-3((x+0.5)^2+\frac{y^2}{2})}$'},...
       'Interpreter','latex', 'FontSize',15,'Color','b') 
view(35,65)
colormap([flipud(cool);cool] )
camlight headlight;
lighting phong;

“HI”—— 数学之美与编程之美的完美融合,让我们看到数学公式原来可以不这么枯燥,程序代码原来可以不那么无味,正应那句话 —— “生活中从不缺少美,而是缺少发现美的眼睛!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 巴山学长 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档