失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > MATLAB偏振光的反射与折射 仿真程序动画作品--光的反射与折射*

MATLAB偏振光的反射与折射 仿真程序动画作品--光的反射与折射*

时间:2022-09-25 14:42:46

相关推荐

MATLAB偏振光的反射与折射 仿真程序动画作品--光的反射与折射*

%作者:040403308

xmax=1;%x轴坐标长

ymax=1;%y轴坐标长

x=0.5;%x初值

y=1;%y初值

figure(1);%给程序命名

fill([0.1,xmax+0.1,xmax-0.1,-0.1],[0.1,0.1,-0.1,-0.1],[0,0.5,0]); %绘制介质n2部分的范围和颜色(挡板表示)

hold on;%保持绘制的坐标

fill([-0.1,0.1,0.1,-0.1],[ymax-0.1,ymax+0.1,0.1,-0.1],[0,0,0.5]); %绘制介质n3部分的范围与颜色(挡板表示)

hold on;%保持当前图形及轴系的所有特征

axis([-0.2,1.5,-0.6,1.5]);%定义背景坐标范围

axis('off');%覆盖坐标刻度并关闭所有轴标注、标记和背景

title('光的反射与折射')%命名实验名称

text(0.5,0.5,'n1(n1

text(-0.3,0.4,'n2')%标注显示注释'n2的位置

text(0.5,-0.3,'n3(n3

x0=xmax/2;%赋初值

y0=ymax;%赋初值

x2=xmax/2;%赋初值

y2=ymax;%赋初值

head1=line([x0;x],[y0;y],'color','r','linestyle','-','erasemode','xor'); %设置光线1的颜色、大小、线的擦除方式

head2=line([x2;x],[y2;y],'color','y','linestyle','-','erasemode','xor'); %设置光线2的颜色、大小、线的擦除方式

t=0;%赋初值

dt=0.01;%设置光的传播速度

while t<50 %循环1(显示从开始到第一次折射之间的光线)

t=t+dt;%光线的速度

x=xmax/2-t/100;%设置光线1的运动轨迹

y=x+0.5;%设置光线1的运动轨迹

x2=xmax/2-t/100;%设置光线2运动轨迹

y2=x2+0.5;%设置光线2运动轨迹

set(head1,'xdata',[0.5;x],'ydata',[1;y]);%设置光线1的运动

set(head2,'xdata',[0.5;x2],'ydata',[1;y2]);%设置光线2的运动

drawnow;%等待图纸完成事件

end%循环1结束

while t<100 %循环2(显示第1次反射到第2次折射与反射之间的光线)

t=t+dt;

x=t/100-0.5;%设置光线1的运动轨迹

y=-x+0.5;

x2=t/100-0.5;%设置光线2运动轨迹

y2=-x2+0.5;

set(head1,'xdata',[0;x],'ydata',[0.5;y]);%设置光线1的运动

set(head2,'xdata',[0;x2],'ydata',[0.5;y2]);%设置光线2的运动

drawnow;%等待图纸完成事件

end%循环2结束

while t>100%循环3(显示第2次折射与反射后的光线)

t=t+dt;

x=t/100-0.5;%设置光线1的运动轨迹

y=x-0.5;

x2=t/500+0.4;%设置光线2运动轨迹

y2=-2*x2+1;

set(head1,'xdata',[0.5;x],'ydata',[0;y]);%设置光线1的运动

set(head2,'xdata',[0.5;x2],'ydata',[0;y2]);%设置光线2的运动

drawnow;%等待图纸完成事件

end %循环3结束

如果觉得《MATLAB偏振光的反射与折射 仿真程序动画作品--光的反射与折射*》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。