圣诞节是基督教纪念耶稣诞生的重要节日。亦称耶稣圣诞节、主降生节,天主教亦称耶稣圣诞瞻礼。耶稣诞生的日期,《圣经》并无记载。公元336年罗马教会开始在12月25日过此节。12月25日原是罗马帝国规定的太阳神诞辰。有人认为选择这天庆祝圣诞,是因为基督教徒认为耶稣就是正义、永恒的太阳。5世纪中叶以后,圣诞节作为重要节日,成了教会的传统,并在东西派教会中逐渐传开。因所用历法不同等原因,各教派会举行庆祝的具体日期和活动形式也有差别。圣诞节习俗传播到亚洲主要是在十九世纪中叶,日本、韩国等都受到了圣诞文化的影响。现在西方在圣诞节常互赠礼物,举行欢宴,并以圣诞老人、圣诞树等增添节日气氛,已成为普遍习俗。圣诞节也成为西方世界以及其他很多地区的公共假日。
1.随机产生51个坐标,在每一个坐标上绘制“*”号,产生 450 个雪花
2.我们可知。树是一个圆锥,我们利用cylinder函数产生一个圆锥,并且在surf在三维坐标面显示出来,也就是我们利用数学图形来展示实物效果,给人一个好的视觉效果。
1.绘制漫天雪花
snow_count=450;
snowX=(rand(snow_count-200,1)*25-12.5)/30;
snowY=(rand(snow_count-200,1)*25-12.5)/30;
snowZ=(rand(snow_count-200,1)*27)/30;
color0 = jet(length(snowX));
for ii = 1:length(snowX)
plot3(snowX(ii),snowY(ii),snowZ(ii),'*','color',color0(ii, :),'markersize',randi(15))
end
hight=plot3(snowX,snowY,snowZ,'w*');
2.绘制树和装饰零件
N = 6^5;
c = 50;
k = randi(6,c,1);
l = randperm(N,c);
q = @(x) rand(N,1);
a = q()*2*pi;
z = q(); r = .4*(1-z);
t = q();
x = r.*cos(a);
y = r.*sin(a);
P = {'ro','ys','md','b^','kh','c*'};
scatter3(x.*t,y.*t,z,[],[zeros(N,1) (t.*r).^.6 zeros(N,1)],'*')
plot3(0,0,1.05,'rp','markers',12,'markerf','r')
for i = 1:6
L = l(k==i);
plot3(x(L),y(L),z(L),P{i},'markers',8,'linew',2);
end
[X,Y,Z] = cylinder(.025,30);
surf(X,Y,-Z*.1)
view(3, 9)
axis equal off
整体代码如下
clc
clear all
close all
figure('color','k'),
hold on
snow_count=450;
snowX=(rand(snow_count-200,1)*25-12.5)/30;
snowY=(rand(snow_count-200,1)*25-12.5)/30;
snowZ=(rand(snow_count-200,1)*27)/30;
color0 = jet(length(snowX));
for ii = 1:length(snowX)
plot3(snowX(ii),snowY(ii),snowZ(ii),'*','color',color0(ii, :),'markersize',randi(15))
end
hight=plot3(snowX,snowY,snowZ,'w*');
N = 6^5;
c = 50;
k = randi(6,c,1);
l = randperm(N,c);
q = @(x) rand(N,1);
a = q()*2*pi;
z = q(); r = .4*(1-z);
t = q();
x = r.*cos(a);
y = r.*sin(a);
P = {'ro','ys','md','b^','kh','c*'};
scatter3(x.*t,y.*t,z,[],[zeros(N,1) (t.*r).^.6 zeros(N,1)],'*')
plot3(0,0,1.05,'rp','markers',12,'markerf','r')
for i = 1:6
L = l(k==i);
plot3(x(L),y(L),z(L),P{i},'markers',8,'linew',2);
end
[X,Y,Z] = cylinder(.025,30);
surf(X,Y,-Z*.1)
view(3, 9)
axis equal off
for i = 1:3:c*9
set(gca,'vie',[i, 9]);
drawnow
end