1701007230
1701007231
1701007232
1701007233
图5-54 飞扬的五星红旗
1701007234
1701007235
五星红旗随风飘扬,其波动情况和实际运动情况相符合,从程序角度来看实际,我们可以坐观风云,这就是程序下的几何图形之美,让我们开动思维,用我们的智慧筑起智能化设计的桥梁。
1701007236
1701007237
1701007238
1701007239
1701007241
我和数学有约:趣味数学及算法解析 5.9 一颗红心永流传
1701007242
1701007243
一颗红心永流传,顾名思义,我肯定将描述一颗红心。红心就是我们眼中看到的像“心”一样的“类模型”,我们当中的很多人都喜欢它,一方面它精致,另一方面更是勿忘心安。一颗红心既然这么惹人喜欢,拥有一颗我们自己的红心,就显得那么理所当然了。
1701007244
1701007245
采用程序设计,我们可以设计一颗完美的红心,为我们所欣赏、所拥有,要想绘制三维的红心,首先来看看二维的心形图如何绘制。
1701007246
1701007247
二维红心的平面方程如下:
1701007248
1701007249
1701007250
1701007251
1701007252
采用程序进行数值解模拟如下:
1701007253
1701007254
figure(1) ezplot(‘(x^2-1+y^2)^3-x^2*y^3’) axis([-2.5 2.5 -2 2])
1701007255
1701007256
运行程序输出图形如图5-55所示。
1701007257
1701007258
1701007259
1701007260
1701007261
图5-55 二维心形图
1701007262
1701007263
二维心形图很逼近我们平时所看到的三维心形图的截面图,由二维图形,我们进行三维设计,就显得比较容易。具体的红心设计MATLAB程序如下:
1701007264
1701007265
clc,clear,close all %清屏和清除变量 warning off %消除警告 figure(‘color’,[1,1,1]) %设置背景为白色 x = linspace(-2,2,100); %均匀化划分点数 [X,Y,Z] = meshgrid(x,x,x); %平面栅格化 I1 = (X.^2+9/4*Y.^2+Z.^2-1).^3-X.^2.*Z.^3-9/80*Y.^2.*Z.^3; p = patch(isosurface(X,Y,Z,I1,0)); set(p, ‘FaceColor’, ‘red’, ‘EdgeColor’, ‘none’); view(3); %视图 axis equal ; %坐标轴属性,x和y等长 axis off; %不显示坐标轴 light(‘Posi’,[0 -2 3]); %在(0,-2,3)点处建立一个光源 lighting phong set(gca,‘nextplot’,‘replacechildren’); %增强显示颜色亮度 brighten(0.6) %亮度 campos([2,13,10]); %照相机位置 axis off vis3d; %隐藏坐标轴 view([9.93997681865585 29.6119315085364]); %视图
1701007266
1701007267
运行程序输出图形如图5-56所示。
1701007268
1701007269
1701007270
1701007271
1701007272
图5-56 一颗红心永流传
1701007273
1701007274
我们都不敢相信,我们的计算机采用程序编码,能够再现心形的三维曲面图。图5-56相当逼真的实现了我们眼中的心形纪念品,我们不得不佩服我们自己,心形图形的美,让我们有了去实现它、拥有它的动力。如果你喜欢什么,尽力去尝试,你将得到你所想要的,真的不是幻想。
1701007275
1701007276
1701007277
1701007278
[
上一页 ]
[ :1.70100723e+09 ]
[
下一页 ]