用matlab绘制生日蛋糕

用matlab绘制一个双层的蛋糕,巧克力+抹茶味~


%cake base1
 
[base1_x base1_y base1_z]=cylinder(0.8,100);
surf(base1_x,base1_y,base1_z/3+0.5,'facecolor',[94/255 38 /255  18 /255],'linestyle','none');  hold on
  
base1_z_max=max(base1_z/3+0.5);
base1_z_max=base1_z_max(1);
x1_top=0.8*cos(linspace(0,2*pi,1000));
y1_top=0.8*sin(linspace(0,2*pi,1000));
z1_top=ones(size(x1_top))*base1_z_max;
   
fill3(x1_top,y1_top,z1_top,'y', 'facecolor',[138/255 54 /255  15 /255]);

%cake base2
  
[base2_x base2_y base2_z]=cylinder(1,100);
surf(base2_x,base2_y,base2_z/2,'facecolor',[81/255 149/255 72/255],'linestyle','none'); 
  
base2_z_max=max(base2_z/2);
base2_z_max=base2_z_max(1);
x2_top=cos(linspace(0,2*pi,1000));
y2_top=sin(linspace(0,2*pi,1000));
z2_top=ones(size(x2_top))*base2_z_max;
    
fill3(x2_top,y2_top,z2_top,'y', 'facecolor',[152/255  251 /255  152/255]);
   
%cake candles
for i=1:22
  [x_can y_can z_can]=cylinder(0.015,22);
  z_can=z_can/4+.7333;
  x_can=x_can+0.7*cos(i*pi/22*2);
  y_can=y_can+0.7*sin(i*pi/22*2);
  surf(x_can,y_can,z_can,'facecolor',[250/255 2/255  60/255]); axis equal
end
   
%cake text
text(0-0.5, 0.2,0.9,'happy birthday!','FontSize',22,...
  'FontName','Monotype Corsiva','Color',[1 0 0]);



效果图如下:

  • 23
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是使用MATLAB制作生日蛋糕的步骤: 1.首先,我们需要定义蛋糕的形状。可以使用MATLAB的内置函数“cylinder”来创建一个圆柱体,然后将其缩放和平移以形成蛋糕的形状。 2.接下来,我们需要定义蜡烛的形状。可以使用MATLAB的内置函数“cone”来创建一个圆锥体,然后将其缩放和平移以形成蜡烛的形状。 3.然后,我们需要定义蜡烛的火焰。可以使用MATLAB的内置函数“surf”来创建一个球体,并将其缩放和平移以形成火焰的形状。 4.接下来,我们需要将蜡烛和火焰放置在蛋糕上。可以使用MATLAB的内置函数“hold on”来保持当前图形,并使用“plot3”函数将蜡烛和火焰放置在蛋糕上。 5.最后,我们可以使用MATLAB的内置函数“view”和“camlight”来设置视角和光照,并使用“for”循环来旋转蛋糕和蜡烛,从而创建一个生日蛋糕。 下面是MATLAB代码的示例: ```matlab % 定义蛋糕的形状 [x,y,z] = cylinder([0.7 0.5],50); z(2,:) = 0.5; z(1,:) = 0.7; h1 = surf(x,y,z); set(h1,'FaceColor',[1 0.5 0.5],'EdgeColor','none'); hold on; % 定义蜡烛的形状 [x,y,z] = cone(0.1,0.5,50); z = z + 0.5; h2 = surf(x,y,z); set(h2,'FaceColor',[1 1 0],'EdgeColor','none'); % 定义火焰的形状 [x,y,z] = sphere(20); x = x * 0.1; y = y * 0.1; z = z * 0.4 + 1; h3 = surf(x,y,z); set(h3,'FaceColor',[1 0.5 0],'EdgeColor','none'); % 将蜡烛和火焰放置在蛋糕上 plot3(0,0,0.5,'.','MarkerSize',50,'Color',[1 1 0]); plot3(0,0,1.1,'.','MarkerSize',20,'Color',[1 0.5 0]); % 设置视角和光照,并创建动 view(30,30); camlight; for i = 1:360 rotate(h1,[0 0 1],1); rotate(h2,[0 0 1],1); rotate(h3,[0 0 1],1); drawnow; end ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值