2022年圣诞节 | matlab实现炫酷的圣诞树

news2024/12/25 12:29:06

*2022年圣诞节到来啦,很高兴这次我们又能一起度过~
在这里插入图片描述

这里的部分代码已经在网上出现过,做了部分优化。是matlab版本。

一、内容介绍

这段代码是一个生成3D圣诞树的Matlab函数。运行该函数时,它使用圆柱函数创建圣诞树的 3D 表面,对树冠应用随机扰动,并使用 surfl 函数绘制树。树以当前轴 (gca) 绘制,并为绘图指定颜色图和照明。该函数还在树的顶部绘制一颗星星,并创建白色圆圈的散点图来表示树上的灯光。最后,该函数使用 lightFuncX 和 lightFuncY 函数在树上绘制其他光源,这些函数在代码前面已定义。该函数通过设置轴限制、打印框纵横比和视图角度以及关闭轴标签并打印标题来结束。

二、代码优化

提示:在代码中实现gif功能。
gif 功能所用到工具包为CDT, 链接: https://github.com/chadagreene/CDT

二、编码实现

提示:详细展示实现相关创意的代码。

function XmasTree2022
% 生成树本体曲面
treeFunc=@(h)[h(1),h(h>0&h<=3).*0+1.5,8-(h(h>3)-3).*0.3636];
[X,Y,Z]=cylinder(treeFunc(0:0.2:25));
% 随机移动树冠上点的位置
Z=Z.*25;
cnt1=1:21;cnt2=16:126;
angle=atan(Y(cnt2,cnt1)./X(cnt2,cnt1));
treeDiffusion=rand(111,21)-0.5;
X(cnt2,cnt1)=X(cnt2,cnt1)+cos(angle).*treeDiffusion;
Y(cnt2,cnt1)=Y(cnt2,cnt1)+sin(angle).*treeDiffusion;
Z(cnt2,cnt1)=Z(cnt2,cnt1)+(rand(111,21)-0.5).*0.5;
X(:,end)=X(:,1);Y(:,end)=Y(:,1);Z(:,end)=Z(:,1);
% 绘制圣诞树
ax=gca;hold on;
set(gcf,'Color',[22,32,51]./255);
surfl(X,Y,Z,'light');
r=(0.0430:(0.2061/50):0.2491)';
g=(0.2969:(0.4012/50):0.6981)';
b=(0.0625:(0.2696/50):0.3321)';
Cmap=[r,g,b];Cmap(1:6,:)=Cmap(1:6,:).*0+[77,63,5]/265;
% 绘制标题
annotation('textbox',[.45,.86,.1,.1],'String','Merry Christmas','fontsize',23,...
    'fontweight','Bold','FontName','Cambria','HorizontalAlignment','center','Color','w','EdgeColor','none')
% 当前坐标区域修饰
set(ax,'XLim',[-10 10],'YLim',[-10,10],'ZLim',[0,30],'PlotBoxAspectRatio',[1,1,1.2],...
    'XColor','none','YColor','none','ZColor','none','Color',[22,32,51]./255,'View',[-37.5,4],...
    'Colormap',jet,'Position',[0,0,1,.9],'Tag',char([100,105,115,112,40,39,20316,32773,...
    58,115,108,97,110,100,97,114,101,114,39,41]));
lighting phong;shading interp;eval(ax.Tag)
% 绘制星星
plot3(0,0,25.6,'p', 'MarkerSize',24,'MarkerFaceColor',[255,223,153]/255,'MarkerEdgeColor','none','LineWidth', 1);
starLightHdl=scatter3(0,0,25,6000,'o','MarkerFaceColor','w','MarkerEdgeColor','w','MarkerEdgeAlpha',0,'MarkerFaceAlpha', 0.1);
% 绘制圣诞树上的彩灯
lightFuncX=@(h,r,a,z) (h-z)./h.*r.*cos(a.*z);
lightFuncY=@(h,r,a,z) (h-z)./h.*r.*sin(a.*z);
h=25;r=8;
lightZ1=linspace(4,25-4,200);a1=0.3*pi;
lightX1=lightFuncX(h,r*1.4,a1,lightZ1);
lightY1=lightFuncY(h,r*1.4,a1,lightZ1);
plot3(lightX1,lightY1,lightZ1+.1,'.','LineWidth',2,'Color',[253,249,220]/255,'MarkerSize',4)
lightZ1=linspace(4,25-4,45);a1=0.3*pi;
lightX1=lightFuncX(h,r*1.2,a1,lightZ1);
lightY1=lightFuncY(h,r*1.2,a1,lightZ1);
scatter3(lightX1,lightY1,lightZ1+.1,300,'Marker','o','MarkerEdgeColor','none',...
    'MarkerFaceColor',[253,249,220]/255,'MarkerFaceAlpha',.08)
scatter3(lightX1,lightY1,lightZ1+.1,50,'Marker','o','MarkerEdgeColor','none',...
    'MarkerFaceColor',[231,217,129]./255,'MarkerFaceAlpha',.95)
lightZ1=linspace(4,25-5,100);a1=-0.15*pi;
lightX1=lightFuncX(h,r*1.2,a1,lightZ1);
lightY1=lightFuncY(h,r*1.2,a1,lightZ1);
plot3(lightX1,lightY1,lightZ1+.1,'.','LineWidth',2,'Color','w','MarkerSize',4)
lightZ1=linspace(4,25-6,17);a1=-0.15*pi;
lightX1=lightFuncX(h,r*1.2,a1,lightZ1);
lightY1=lightFuncY(h,r*1.2,a1,lightZ1);
scatter3(lightX1,lightY1,lightZ1+.1,300,'Marker','o','MarkerEdgeColor','none',...
    'MarkerFaceColor',[253,249,220]/255,'MarkerFaceAlpha',.08)
scatter3(lightX1,lightY1,lightZ1+.1,70,'Marker','o','MarkerEdgeColor','none',...
    'MarkerFaceColor','w','MarkerFaceAlpha',.8)
% 绘制礼物
drawPresent(2,-4,0,3,3,2);
drawPresent(-4,3,0,2,3,1.5);
drawPresent(5,3,0,4,3,3);
drawPresent(-7,-5,0,5,3,1);
drawPresent(-9,-6,0,2,2,2);
drawPresent(0,4,0,4,3,3);
    function drawPresent(dx,dy,dz,scalex,scaley,scalez)
        presentX=[0.5 0.5 0.5 0.5 0.5; 0 1 1 0 0; 0 1 1 0 0; 0 1 1 0 0; 0.5 0.5 0.5 0.5 0.5];
        presentY=[0.5 0.5 0.5 0.5 0.5; 0 0 1 1 0; 0 0 1 1 0; 0 0 1 1 0; 0.5 0.5 0.5 0.5 0.5];
        presentZ=[0 0 0 0 0;0 0 0 0 0; 0.5 0.5 0.5 0.5 0.5; 1 1 1 1 1; 1 1 1 1 1];
        randColorMap=cat(3,repmat(rand,[5,5])./2+.5,repmat(rand,[5,5])./2+.5,repmat(rand,[5,5])./2+.5);
        surf((presentX*scalex+dx),(presentY*scaley+dy), (presentZ*scalez+dz),'CData',randColorMap);
        shading interp
    end
% 绘制雪花
snowXYZ1=rand(70,3);
snowXYZ1(:,1:2)=snowXYZ1(:,1:2).*26-13;
snowXYZ1(:,3)=snowXYZ1(:,3).*30;
snowXYZ2=rand(90,3);
snowXYZ2(:,1:2)=snowXYZ2(:,1:2).*26-13;
snowXYZ2(:,3)=snowXYZ2(:,3).*30;
snowHdl1=plot3(snowXYZ1(:,1),snowXYZ1(:,2),snowXYZ1(:,3),'*','Color',[1 1 1]);
snowHdl2=plot3(snowXYZ2(:,1),snowXYZ2(:,2),snowXYZ2(:,3),'.','Color',[.6,.6,.6]);
% 旋转图像、雪花飘落

for i=1:100
    
    starLightHdl.SizeData=6000+sin(i/5).*1000;
    snowXYZ1(:,3)=snowXYZ1(:,3)-.1;snowXYZ2(:,3)=snowXYZ2(:,3)-.01;
    snowXYZ1(snowXYZ1(:,3)<0,3)=30;snowXYZ2(snowXYZ2(:,3)<0,3)=30;
    snowHdl1.XData=snowXYZ1(:,1);snowHdl1.YData=snowXYZ1(:,2);snowHdl1.ZData=snowXYZ1(:,3);
    snowHdl2.XData=snowXYZ2(:,1);snowHdl2.YData=snowXYZ2(:,2);snowHdl2.ZData=snowXYZ2(:,3);
    view([i,4]);
    drawnow;
    pause(.05)
end

end

效果示意图:
在这里插入图片描述

四、编码实现(添加gif功能)

提示:详细展示实现相关创意的代码。

function XmasTree2022

path(path,'E:\new_matlab_Tool\CDT-master\cdt');

% 生成树本体曲面
treeFunc=@(h)[h(1),h(h>0&h<=3).*0+1.5,8-(h(h>3)-3).*0.3636];
[X,Y,Z]=cylinder(treeFunc(0:0.2:25));
% 随机移动树冠上点的位置
Z=Z.*25;
cnt1=1:21;cnt2=16:126;
angle=atan(Y(cnt2,cnt1)./X(cnt2,cnt1));
treeDiffusion=rand(111,21)-0.5;
X(cnt2,cnt1)=X(cnt2,cnt1)+cos(angle).*treeDiffusion;
Y(cnt2,cnt1)=Y(cnt2,cnt1)+sin(angle).*treeDiffusion;
Z(cnt2,cnt1)=Z(cnt2,cnt1)+(rand(111,21)-0.5).*0.5;
X(:,end)=X(:,1);Y(:,end)=Y(:,1);Z(:,end)=Z(:,1);
% 绘制圣诞树
ax=gca;hold on;
set(gcf,'Color',[22,32,51]./255);
surfl(X,Y,Z,'light');
r=(0.0430:(0.2061/50):0.2491)';
g=(0.2969:(0.4012/50):0.6981)';
b=(0.0625:(0.2696/50):0.3321)';
Cmap=[r,g,b];Cmap(1:6,:)=Cmap(1:6,:).*0+[77,63,5]/265;
% 绘制标题
annotation('textbox',[.45,.86,.1,.1],'String','Merry Christmas','fontsize',23,...
    'fontweight','Bold','FontName','Cambria','HorizontalAlignment','center','Color','w','EdgeColor','none')
% 当前坐标区域修饰
set(ax,'XLim',[-10 10],'YLim',[-10,10],'ZLim',[0,30],'PlotBoxAspectRatio',[1,1,1.2],...
    'XColor','none','YColor','none','ZColor','none','Color',[22,32,51]./255,'View',[-37.5,4],...
    'Colormap',jet,'Position',[0,0,1,.9],'Tag',char([100,105,115,112,40,39,20316,32773,...
    58,115,108,97,110,100,97,114,101,114,39,41]));
lighting phong;shading interp;eval(ax.Tag)
% 绘制星星
plot3(0,0,25.6,'p', 'MarkerSize',24,'MarkerFaceColor',[255,223,153]/255,'MarkerEdgeColor','none','LineWidth', 1);
starLightHdl=scatter3(0,0,25,6000,'o','MarkerFaceColor','w','MarkerEdgeColor','w','MarkerEdgeAlpha',0,'MarkerFaceAlpha', 0.1);
% 绘制圣诞树上的彩灯
lightFuncX=@(h,r,a,z) (h-z)./h.*r.*cos(a.*z);
lightFuncY=@(h,r,a,z) (h-z)./h.*r.*sin(a.*z);
h=25;r=8;
lightZ1=linspace(4,25-4,200);a1=0.3*pi;
lightX1=lightFuncX(h,r*1.4,a1,lightZ1);
lightY1=lightFuncY(h,r*1.4,a1,lightZ1);
plot3(lightX1,lightY1,lightZ1+.1,'.','LineWidth',2,'Color',[253,249,220]/255,'MarkerSize',4)
lightZ1=linspace(4,25-4,45);a1=0.3*pi;
lightX1=lightFuncX(h,r*1.2,a1,lightZ1);
lightY1=lightFuncY(h,r*1.2,a1,lightZ1);
scatter3(lightX1,lightY1,lightZ1+.1,300,'Marker','o','MarkerEdgeColor','none',...
    'MarkerFaceColor',[253,249,220]/255,'MarkerFaceAlpha',.08)
scatter3(lightX1,lightY1,lightZ1+.1,50,'Marker','o','MarkerEdgeColor','none',...
    'MarkerFaceColor',[231,217,129]./255,'MarkerFaceAlpha',.95)
lightZ1=linspace(4,25-5,100);a1=-0.15*pi;
lightX1=lightFuncX(h,r*1.2,a1,lightZ1);
lightY1=lightFuncY(h,r*1.2,a1,lightZ1);
plot3(lightX1,lightY1,lightZ1+.1,'.','LineWidth',2,'Color','w','MarkerSize',4)
lightZ1=linspace(4,25-6,17);a1=-0.15*pi;
lightX1=lightFuncX(h,r*1.2,a1,lightZ1);
lightY1=lightFuncY(h,r*1.2,a1,lightZ1);
scatter3(lightX1,lightY1,lightZ1+.1,300,'Marker','o','MarkerEdgeColor','none',...
    'MarkerFaceColor',[253,249,220]/255,'MarkerFaceAlpha',.08)
scatter3(lightX1,lightY1,lightZ1+.1,70,'Marker','o','MarkerEdgeColor','none',...
    'MarkerFaceColor','w','MarkerFaceAlpha',.8)
% 绘制礼物
drawPresent(2,-4,0,3,3,2);
drawPresent(-4,3,0,2,3,1.5);
drawPresent(5,3,0,4,3,3);
drawPresent(-7,-5,0,5,3,1);
drawPresent(-9,-6,0,2,2,2);
drawPresent(0,4,0,4,3,3);
    function drawPresent(dx,dy,dz,scalex,scaley,scalez)
        presentX=[0.5 0.5 0.5 0.5 0.5; 0 1 1 0 0; 0 1 1 0 0; 0 1 1 0 0; 0.5 0.5 0.5 0.5 0.5];
        presentY=[0.5 0.5 0.5 0.5 0.5; 0 0 1 1 0; 0 0 1 1 0; 0 0 1 1 0; 0.5 0.5 0.5 0.5 0.5];
        presentZ=[0 0 0 0 0;0 0 0 0 0; 0.5 0.5 0.5 0.5 0.5; 1 1 1 1 1; 1 1 1 1 1];
        randColorMap=cat(3,repmat(rand,[5,5])./2+.5,repmat(rand,[5,5])./2+.5,repmat(rand,[5,5])./2+.5);
        surf((presentX*scalex+dx),(presentY*scaley+dy), (presentZ*scalez+dz),'CData',randColorMap);
        shading interp
    end
% 绘制雪花
snowXYZ1=rand(70,3);
snowXYZ1(:,1:2)=snowXYZ1(:,1:2).*26-13;
snowXYZ1(:,3)=snowXYZ1(:,3).*30;
snowXYZ2=rand(90,3);
snowXYZ2(:,1:2)=snowXYZ2(:,1:2).*26-13;
snowXYZ2(:,3)=snowXYZ2(:,3).*30;
snowHdl1=plot3(snowXYZ1(:,1),snowXYZ1(:,2),snowXYZ1(:,3),'*','Color',[1 1 1]);
snowHdl2=plot3(snowXYZ2(:,1),snowXYZ2(:,2),snowXYZ2(:,3),'.','Color',[.6,.6,.6]);
% 旋转图像、雪花飘落

gif('XmasTree2022.gif','frame',gcf);

for i=1:100
    
    starLightHdl.SizeData=6000+sin(i/5).*1000;
    snowXYZ1(:,3)=snowXYZ1(:,3)-.1;snowXYZ2(:,3)=snowXYZ2(:,3)-.01;
    snowXYZ1(snowXYZ1(:,3)<0,3)=30;snowXYZ2(snowXYZ2(:,3)<0,3)=30;
    snowHdl1.XData=snowXYZ1(:,1);snowHdl1.YData=snowXYZ1(:,2);snowHdl1.ZData=snowXYZ1(:,3);
    snowHdl2.XData=snowXYZ2(:,1);snowHdl2.YData=snowXYZ2(:,2);snowHdl2.ZData=snowXYZ2(:,3);
    view([i,4]);
    drawnow;
    gif;
    pause(.05)
end

end

五、其他的colormap

在这里插入图片描述


在这里插入图片描述

在这里插入图片描述

六、祝愿

Merry Christmas! I hope you have a wonderful holiday season filled with joy, laughter, and the love of friends and family. May all your dreams and wishes come true in the new year. Happy holidays!

参考链接:MATLAB | 一起来绘制有雪花飘落的圣诞树叭

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/126712.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【一】微服务技术栈导学

微服务技术栈导学什么是微服务&#xff1f;微服务技术栈注册中心配置中心服务网关分布式缓存分布式搜索消息队列分布式日志服务&系统监控和链路追踪自动化部署微服务技术栈包含知识点学习路线知识内容来自于黑马程序员视频教学和百度百科。博主仅作笔记整理便于回顾学习。如…

Android设计模式详解之适配器模式

前言 适配器模式在Android开发中使用率很高&#xff0c;如ListView、RecyclerView&#xff1b; 定义&#xff1a;适配器模式把一个类的接口变换成客户端所期待的另一个接口&#xff0c;从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作&#xff1b; 使用场景&…

2023年加密行业会更难吗?欧科云链研究院“七大趋势预测”

回望2022&#xff0c;加密行业遭遇了种种不可控因素而导致的艰难险阻&#xff0c;也在变革与发展中孕育着生机与活力。 这一年&#xff0c;我们亲眼目睹了Luna暴雷&#xff0c;三箭资本、FTX这些曾经被认为“大而不倒”的机构接连倒下&#xff0c;市场信心严重受挫&#xff1b;…

登陆港股市场,阳光保险的 “价值锚点”

不确定性环境里&#xff0c;信心比黄金还重要。 最近&#xff0c;利好信号频频出现在保险行业&#xff0c;资本信心不断加固。上个月月底&#xff0c;个人养老金制度启动实施&#xff0c;市场迅速传来喝彩声。这不仅将加快推动养老保险作为第三支柱的壮大&#xff0c;而且还为…

ARM体系架构中的存储系统

在计算机系统当中&#xff0c;数据的存储是以字节为单位的&#xff0c;每个地址单元当中都可以存放一个字节的数据&#xff0c;每个字节为8bit。在C语言中编译器为char型的数据分配了一个字节的存储空间&#xff0c;为long型的数据分配了4个字节的存储空间&#xff0c;为int型的…

【NI Multisim 14.0编辑环境——工具栏】

目录 序言 一、工具栏 &#x1f34a;1.“标准”工具栏 &#x1f34a; 2.视图工具栏 &#x1f34a;3.“主”工具栏 &#x1f34a;4.“元器件”工具栏 &#x1f34a;5.“Simulation”&#xff08;仿真&#xff09;工具栏 &#x1f34a;6.“Place probe”&#xff08;放置探针…

ARM64内存虚拟化分析(2)常用结构体

内存虚拟化相关的几个重要结构体如下图所示&#xff1a; 这里介绍几个结构体以及相互之间有关系。 &#xff08;1&#xff09;AddressSpace结构体 它用于表示一个虚拟机或虚拟CPU能够访问的所有物理地址。其中&#xff1a; root&#xff1a;指向根MR Current_map&#xff1…

营销在中国

&#xff08;1&#xff09;4P、4C、4R、4I作为一个企业&#xff0c;不外乎就是两个是&#xff1a;产-销。你生产-客户购买&#xff0c;这个交易能做成&#xff0c;不外乎在于交换的价值&#xff0c;以及交易的价格-成本。一、4P4P&#xff0c;是美国密歇根大学教授杰罗姆麦卡锡…

向量的点乘与X乘以及意义

一、向量的点乘 向量的点乘&#xff08;dot&#xff09;是一个标量积&#xff0c;也叫向量的内积、数量积。 点乘公式&#xff1a; 有向量a b a(a1,a2,a3,...,an) b(b1,b2,b3,...,bn); 那么向量a(dot)ba1b1a2b2a3b3....anbn 从上面我们能可以看出&#xff0c;点乘得到的结…

2022年个人融资方法和工具研究报告

第一章 理论和概况 1.1 融资概念 融资&#xff0c;英文为Financing&#xff0c;指为支付超过现金或转账的购货款而采取的货币交易手段&#xff0c;或者为取得特定资产而筹集资金所采取的货币手段。融资通常指货币资金的持有者和需求者之间&#xff0c;直接或间接地进行资金融…

Appium基础 — 模拟手势点击坐标

1、模拟手势点击坐标 在定位元素的时候&#xff0c;你使出了十八班武艺还是定位不到&#xff0c;怎么办呢&#xff1f;&#xff08;面试经常会问&#xff09; 那就拿出绝招&#xff1a;点击元素所在位置的坐标。&#xff08;坐标定位&#xff09; 详细说明&#xff1a; 如下…

OpenWrt无法打开国内网站的解决方法

最近小半个月以来根据lean和lieno源码编译的OpenWrt固件在使用了smartdns之后会出现无法打开国内网页的情况。 诡异的是&#xff0c; 重启防火墙之后&#xff0c; 能正常访问百度等国内网站&#xff0c; 但是&#xff0c; 过上一段时间&#xff0c; 就又不行了。 在经过近一个…

示波器应用(三)

示波器可做什么&#xff1f; 基础材质检查环境搭建校验 相似材质之间的细微差异分析 场景调光依据/竞品分析 定位曝光、色相问题 风格化调色监视 LUTs检查 材质检查 单看上图的分量示波器&#xff0c;仔细想一想这张图是什么色相&#xff1f; 公布答案 分量示波器rgb模…

电子采购方案:构建高效智能数字化采购

过去几十年&#xff0c;公用事业行业发生了重大变化。能源需求的转变导致企业利润率的波动&#xff0c;但不是运营成本的波动。 许多公用事业公司通过后勤部门流程自动化来削减成本&#xff0c;比如招采流程自动化。 在招采活动中&#xff0c;人工招采会产生盲点。由于公共事业…

Vue(一)

1.Vue简介 将html/css/js封装到vue里&#xff0c;形成一个组件&#xff0c;改动某个组件里内容不会影响另一个 要实现将左边数据变成li的形式放进容器里面&#xff0c;传统实现方式&#xff1a; vue形式编码简易实现:指令实现 Diff会跟原来的比较&#xff0c;跟原来一样的会直接…

设备管理器,其他设备,PCI数据捕获和信号处理控制器出现感很多未知设备感叹号,通用解决方法,以华为matebook为例

问题的关键是找到对应的驱动。 通用解决方法&#xff1a; 打开设备管理器&#xff0c;找到未知设备&#xff0c;右键属性——详细信息——下拉列表找到硬件标识符Hardware Ids——复制第一行的ID——打开浏览器搜索相关内容&#xff0c;确定该设备对应的驱动名称——从可靠渠…

在人生最好的状态读研,社科院与杜兰大学金融管理硕士项目与你共同努力奔赴未来

人生中最好的状态是什么阶段呢&#xff1f;说起中年&#xff0c;人们往往会联想到“危机”、“油腻”等词语&#xff0c;确实&#xff0c;中年人面临着事业、家庭、健康等的各种关卡&#xff0c;让人觉得危机四伏。其实中年也是人一生中最为丰美的岁月&#xff0c;面对生活中的…

F280049C Programmable Gain Amplifier PGA

文章目录PGA14.1 Introduction简介14.1.1 Features特性14.1.2 Block Diagram结构框图14.2 Linear Output Range线性输出范围14.3 Gain Mode放大模式14.4 External Filtering外部滤波14.7 Enabling and Disabling the PGA Clock时钟使能禁止14.10 Analog Front End Integration模…

Github Package npm 应用发布实践

Github Package npm 应用发布实践 文章目录Github Package npm 应用发布实践1. 简介2. 创建新库3. 编写 index.js4. npm init 初始化5. npm install6. 创建 release-package.yml7. 发布8. 查看已发布的包9. 管理 npm 包1. 简介 GitHub Packages 是一个用于托管和管理包的平台&…

高压功率放大器在磁巴克豪森噪声表征方法研究中的应用

实验名称&#xff1a;基于数据驱动的结构钢表面应力磁巴克豪森噪声表征方法研究 研究方向&#xff1a;材料测试 实验目的&#xff1a; 磁巴克豪森噪声&#xff08;Magnetic Barkhausen Noise,MBN&#xff09;技术可用于定量评估铁磁材料的表面应力。当前MBN法应力评估技术存在特…