matlab光学远轴光的折射,matlab模拟光的反射折射
(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); %顯示圖形窗口
運行程序,得到運動的圖形,即入射角改變,折射光和反射光的變化。得到截圖如下:
展開閱讀全文
總結
以上是生活随笔為你收集整理的matlab光学远轴光的折射,matlab模拟光的反射折射的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tag+标签+php,ZBLOG PHP
- 下一篇: matlab 雷达图函数,R语言之可视化