matlab光学远轴光的折射,matlab模拟光的反射折射
(3).我們首先假設(shè)光從空氣進(jìn)入水中,此時n=1.5。用一次函數(shù)圖像來表示光的傳播路線,通過改變光的入射點(diǎn)來改變光的入射角和入射方向,并根據(jù)反射光、折射光與入射光的斜率關(guān)系來控制反射角、折射角與入射角關(guān)系,設(shè)計(jì)程序如下:
function ZHEFAN; % 光的折射 光的反射
set(gcf,doublebuffer,on); %設(shè)置圖片屬性,雙緩存防止圖閃爍
axis([-2,2,-1,1]);hold on; %設(shè)置坐標(biāo)軸范圍(x軸-2到2,y軸-1到1)
rectangle(Position,[-2,-1,4,1],...
FaceColor,[0.1,0.6,0.6]); %給圖形下半部分設(shè)置成水的顏色
text(1.4,0.4,air,color,r,fontsize,14)
text(1.4,-0.4,water,color,r,fontsize,14) %注明空氣和水,并且設(shè)置字體
n=1.5;t=0; %設(shè)置折射率
text(0.7,0.6,[n= ,num2str(n)],fontsize,14); %在圖形上標(biāo)明折射率
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); %設(shè)置入射光
Ho=plot([0,0],[0,-1]); %設(shè)置折射光
Hr=plot([0,0],[0,1],r); %設(shè)置反射光
xlabel(請按空格停止,... fontsize,14,color,r); %設(shè)置結(jié)束提示
k=1;dt=0.1; %初始化k方便循環(huán),設(shè)置入射光變化量
while k %循環(huán)體
pause(0.5); % 設(shè)置每次圖形變換間隔為0.5秒
s=get(gcf,currentkey);
if strcmp(s,space);
clc;k=0;
end %輸入空格終止演示,是圖形停止
if abs(t)>0.3*pi
dt=-dt;
end %設(shè)置入射光變化的范圍
t=t+dt;
A=t;
Xi=0.4*tan(A);
set(Hi,xdata,[Xi,0]); %入射光發(fā)生改變
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); %顯示圖形窗口
運(yùn)行程序,得到運(yùn)動的圖形,即入射角改變,折射光和反射光的變化。得到截圖如下:
展開閱讀全文
總結(jié)
以上是生活随笔為你收集整理的matlab光学远轴光的折射,matlab模拟光的反射折射的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tag+标签+php,ZBLOG PHP
- 下一篇: matlab 雷达图函数,R语言之可视化