MATLAB社区

MATLAB,社区等

cookie和代码

大至日大都会地区的季节问候!在我写这篇文章的时候,夏至日的太阳在北半球一年中最短的一天落下。冬天来了。所以很自然地,我想到了饼干。
all_cookies.png
这个冬季白日梦的灵感来自Eric Ludlam编写的一些代码。Eric,除了负责MATLAB图形团队外,还是一个根深蒂固的修补匠。他喜欢制作有趣的图形代码。你可能还记得他一些以南瓜为灵感的作品我去年在这里描述过.或者你可以回忆起他的许多来自最新迷你黑客的条目(和再上一个).
他回来了,这次带来了季节性饼干和雪花的代码。如果你想看他的代码,你可以在他的数字艺术与MATLAB回购。事实上,我们现在就去看看。
我们可以从在MATLAB中克隆我们自己的副本开始。您可以直接从当前文件夹浏览器执行此操作。从Source Control上下文菜单中选择“Manage Files…”
cloning.png
输入存储库路径(https://github.com/zappo2/digital-art-with-matlab),然后文件就下来了。
cloning2.png
Eric使用Jim Blinn描述的blobby隐式曲面制作了一些cookie代码。我们可以用埃里克的模板来剔除其他设计。下面显示的是来自gingerbreadperson的代码。m,只是我把我自己的设计换成了顶部:一根拐杖糖。
做一个姜饼人饼干
K = [ “XXX”
“XXXXX”
“XXX XXX”
“XXX XXX”
“xxx xxx”
“xxx xxx”
“xxx xxx”
“XXX”
“XXX”
“XXX”
“XXX”
“XXX”
“XXX”];
将K转换为blob中心数组
[y、x] =找到(~ isspace (K));
%缩放和偏移中心到3D cookie空间
C = [x * 5 * 5] + 5;C (: 3) = 10;
使用Blinn的blobs的一个简短实现计算一个卷
nx =大小(K, 2) * 5 + 10;纽约=大小(K, 1) * 5 + 10;新西兰= 20;%体积大小
[y、x、z] = ndgrid(1:纽约,1:nx, 1:新西兰);
卷= 0(纽约、nx、新西兰);
i = 1:尺寸(C, 1)
= +卷卷exp(0。* ((C(我,1)- x)。²+ (C(i,2)-y)。²+ (C(i,3)-z).²));
结束
从斑点计算等值面
S =等值面(卷。3);
使用patch绘制等值面
newplot
补丁(年代,“FaceColor”“# a56c3c”“EdgeColor”“没有”);%的饼干
等于ij off
照明高洛德
camlight
材料([。6 .9 .3])
这不是最有形状的拐杖糖,但也可以。让我们加一些糖霜。
newplot
补丁(年代,“FaceColor”的插值函数“EdgeColor”“没有”“FaceVertexCData”S.vertices (: 3));
colormap (validatecolor ({“# a56c3c ' ' # f09090 '},“多”));
爬(20 [10]);
等于ij off
照明高洛德
camlight
材料([。6 .9 .3])
显然,用X在变量K中画出任何让你满意的饼干形状都很容易。如果我们让它随机会发生什么?
制作一个姜饼斑点
K = double(rand(10,10)>0.5);
K(K==0) = char(‘*’);
K = char(K);
将K转换为blob中心数组
[y、x] =找到(~ isspace (K));
%缩放和偏移中心到3D cookie空间
C = [x * 5 * 5] + 5;C (: 3) = 10;
使用Blinn的blobs的一个简短实现计算一个卷
nx =大小(K, 2) * 5 + 10;纽约=大小(K, 1) * 5 + 10;新西兰= 20;%体积大小
[y、x、z] = ndgrid(1:纽约,1:nx, 1:新西兰);
卷= 0(纽约、nx、新西兰);
i = 1:尺寸(C, 1)
= +卷卷exp(0。* ((C(我,1)- x)。²+ (C(i,2)-y)。²+ (C(i,3)-z).²));
结束
从斑点计算等值面
newplot
S =等值面(卷。3);
补丁(年代,“FaceColor”的插值函数“EdgeColor”“没有”“FaceVertexCData”S.vertices (: 3));
colormap (validatecolor ({“# a56c3c”“# 8090 f0”},“多”));
爬(20 [10]);
等于ij off
照明高洛德
camlight
材料([。6 .9 .3])
我喜欢我的随机饼干,我现在倾向于在厨房尝试一些。
我将以Eric的雪花代码作为结束。这是默认的。
雪花
但是,就像饼干一样(和现实生活中的雪花一样),我们可以选择随机的一片。
步骤= randi(10,1,randi(8)+2)
步骤= 1×10
7 6 9 1 1 1 4 2 10 5
雪花(步骤)
节日快乐,谢谢你的饼干,埃里克!
|
  • 打印
  • 发送电子邮件

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。