matlab模拟反射,matlab模拟光的反射折射
《matlab模拟光的反射折射》由会员分享,可在线阅读,更多相关《matlab模拟光的反射折射(2页珍藏版)》请在人人文库网上搜索。
1、3).我们首先假设光从空气进入水中,此时n=1.5。用一次函数图像来表示光的传播路线,通过改变光的入射点来改变光的入射角和入射方向,并根据反射光、折射光与入射光的斜率关系来控制反射角、折射角与入射角关系,设计程序如下:function ZHEFAN; % 光的折射 光的反射set(gcf,doublebuffer,on); %设置图片属性,双缓存防止图闪烁axis(-2,2,-1,1);hold on; %设置坐标轴范围(x轴-2到2,y轴-1到1)rectangle(Position,-2,-1,4,1,. FaceColor,0.1,0.6,0.6); %给图形下半部分设置成水的颜色 te。
2、xt(1.4,0.4,air,color,r,fontsize,14) text(1.4,-0.4,water,color,r,fontsize,14) %注明空气和水,并且设置字体n=1.5;t=0; %设置折射率text(0.7,0.6,n= ,num2str(n),fontsize,14); %在图形上标明折射率HL=rectangle(Position,-0.02,0.4,0.04,0.2,. FaceColor, 0.3,0.8,0.4); %在图形上画出光源Hi=plot(0,0,0,0.4,b); %设置入射光Ho=plot(0,0,0,-1); %设置折射光Hr=plot(0,。
3、0,0,1,r); %设置反射光xlabel(请按空格停止,. fontsize,14,color,r); %设置结束提示k=1;dt=0.1; %初始化k方便循环,设置入射光变化量while k %循环体pause(0.5); % 设置每次图形变换间隔为0.5秒 s=get(gcf,currentkey); if strcmp(s,space); clc;k=0; end %输入空格终止演示,是图形停止if abs(t)0.3*pi dt=-dt; end %设置入射光变化的范围 t=t+dt; A=t; Xi=0.4*tan(A); set(Hi,xdata,Xi,0); %入射光发生改变Ao=asin(sin(A)/n); Xo=Xi+tan(Ao); set(Ho,xdata,Xi,Xo); %绘制最后折射光Xr=Xi+tan(A); set(Hr,xdata,Xi,Xr); %绘制最后反射光set(HL,Facecolor,rand(1,3) end figure(gcf); %显示图形窗口运行程序,得到运动的图形,即入射角改变,折射光和反射光的变化。得到截图如下: (注:文档可能无法思考全面,请浏览后下载,供参考。可复制、编制,期待你的好评与关注。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)