收藏 分销(赏)

matlab模拟光的反射折射.doc

上传人:w****g 文档编号:2405689 上传时间:2024-05-29 格式:DOC 页数:2 大小:115.55KB 下载积分:5 金币
下载 相关 举报
matlab模拟光的反射折射.doc_第1页
第1页 / 共2页
matlab模拟光的反射折射.doc_第2页
第2页 / 共2页
本文档共2页,全文阅读请下载到手机保存,查看更方便
资源描述
(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]); %给图形下半部分设置成水的颜色 text(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,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); %显示图形窗口 运行程序,得到运动的图形,即入射角改变,折射光和反射光的变化。得到截图如下:
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服