程序员的浪漫—利用Matlab 实现圣诞树动态显示

这篇具有很好参考价值的文章主要介绍了程序员的浪漫—利用Matlab 实现圣诞树动态显示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

        圣诞节是基督教纪念耶稣诞生的重要节日。亦称耶稣圣诞节、主降生节,天主教亦称耶稣圣诞瞻礼。耶稣诞生的日期,《圣经》并无记载。公元336年罗马教会开始在12月25日过此节。12月25日原是罗马帝国规定的太阳神诞辰。有人认为选择这天庆祝圣诞,是因为基督教徒认为耶稣就是正义、永恒的太阳。5世纪中叶以后,圣诞节作为重要节日,成了教会的传统,并在东西派教会中逐渐传开。因所用历法不同等原因,各教派会举行庆祝的具体日期和活动形式也有差别。圣诞节习俗传播到亚洲主要是在十九世纪中叶,日本、韩国等都受到了圣诞文化的影响。现在西方在圣诞节常互赠礼物,举行欢宴,并以圣诞老人、圣诞树等增添节日气氛,已成为普遍习俗。圣诞节也成为西方世界以及其他很多地区的公共假日。   

二、效果展示

 matlab圣诞树,matlab,开发语言

 

三、实现步骤

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

整体代码如下文章来源地址https://www.toymoban.com/news/detail-762361.html

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

到了这里,关于程序员的浪漫—利用Matlab 实现圣诞树动态显示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python程序员的浪漫-千行生日祝福代码

    📆 Date: 2022年12月16日修改 🎬 Author: 小 y 同 学 📃 Classify: 花里胡哨区 🔖 Language : Python 🍀 花哨简介     使用python的turtle库进行绘图,先是绘制“一只大熊”送上祝福,随后绘制三层蛋糕送上浪漫!近千行的生日祝福代码还不赶快去试试!     小提示:python3的tu

    2024年02月05日
    浏览(55)
  • 程序员怎么利用ChatGPT解放双手=摸鱼?

    目录 1. 当你遇到问题时为你生成代码ChatGPT 最明显的用途是根据查询编写代码。我们都会遇到不知道如何完成任务的情况,而这正是人工智能可以派上用场的时候。例如,假设我不知道如何使用 Python 编写 IP 修改器,只需查询 AI,它就会生成非常好的代码。你还可以通过向

    2024年02月13日
    浏览(52)
  • 程序员如何利用公网远程访问查询本地硬盘【内网穿透】

    🎬 鸽芷咕 :个人主页  🔥 个人专栏 : 《高效编程技巧》《cpolar》 ⛺️生活的理想,就是为了理想的生活! 随着云概念的流行,不少企业采用云存储技术来保存办公文件,同时,很多个人用户也感受到云存储带来的便利,让云存储概念一时间风头无两。由于资料数据的敏感

    2024年02月12日
    浏览(40)
  • 〖程序员的自我修养 - 精炼面试篇⑨〗- 技术面试不用怕,也是有套路可利用的

    人之所以会觉得迷茫,本质上是欠缺对自己的一个控制力、识别庞杂信息、去伪存真的独立思考与认知能力。 说明:该文属于 程序员的自我修养 专栏, 购买任意白宝书体系化专栏可加入 易编程社区, 早鸟价订阅模式除外 。 福利:加入社区的小伙伴们,除了可以获取博主

    2024年02月15日
    浏览(67)
  • 程序员如何通过创作图文项目实现自己的代码价值

    1.程序员 2.图文赛道创业者 毫无疑问,这是一个优质内容的时代,从某种意义上说,优质内容==Money。优质内容的形式包含很多,在头条的定义中包括:纯文字(糗事百科,头条),纯图片(图虫),视频(短:抖音,长:西瓜),音乐(汽水),直播(火山),其中在抖音中

    2024年02月02日
    浏览(59)
  • 程序员如何实现财富自由系列之:参与加密货币交易

    作者:禅与计算机程序设计艺术 近年来,随着全球数字货币市场的崛起,越来越多的人开始关注数字货币投机者的种种行为。对于这类投机者来说,掌握一些加密货币交易的技巧和经验可以帮助他们实现财富自由。本文将会分享一些常用加密货币交易平台的操作指南,让大家

    2024年02月03日
    浏览(51)
  • 测试/开发程序员有8大好处,自我实现和自我超越......

    测试/开发程序员有8大好处 很早前网络就关于程序员种种不好的标签,比如“不修边幅,生活邋遢“,“无趣呆板,不浪漫“,“加班多“,“不疼爱女朋友“,“情商低”等,通通都是瞎扯,除了加班多,其他跟程序员行一点关系都没有。 当测试/开发程序员好处多多 1、相

    2024年02月03日
    浏览(82)
  • 【作为程序员,你有什么让人眼前一亮的代码实现方式?】

    随着科技的不断发展,编程语言也在不断更新和改进。作为程序员,我们需要选取一种适合自己的高级编程语言来完成项目任务。下面将介绍常见的三种高级编程语言:Python、Java和C++。 Python Python是一种高级编程语言,具有简单易学、可读性强、效率高等特点。它广泛应用于

    2024年02月06日
    浏览(45)
  • 程序员如何实现财富自由系列之:参与区块链技术的开发和投资

    作者:禅与计算机程序设计艺术 随着各行各业的人工智能技术应用越来越普及,“区块链”这个火热词汇在近几年已经掀起了一股新的热潮。 区块链(Blockchain)是一个分布式数据库,它通过对数据进行记录、验证、存储、防篡改等方式确保数据的真实性、完整性和有效性。

    2024年02月07日
    浏览(58)
  • 普通程序员如何实现在公网环境下也可以访问私有仓库Gitlab

    🎬 鸽芷咕 :个人主页  🔥 个人专栏 : 《高效编程技巧》《cpolar》 ⛺️生活的理想,就是为了理想的生活! GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。 Gitlab是被广泛使用的基于git的开源代码管理平台, 基于Ruby o

    2024年02月11日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包