MATLAB 凸透镜成像原理仿真(凹透镜大致图)

用MATLAB画凸透镜成像仿真,直线代表光线,方向由左向右,蓝色部分是焦点成像图。代码如下(内有画圆弧的代码):

% 焦点
jiaodian_x = 0.4;
jiaodian_y = 0.0;
jiaodian_yy = 0.5;
%成像点
chengxiangdian_x = -1.5;
chengxiangdian_y = 0.4;

hold on

plot([chengxiangdian_x,chengxiangdian_x],[0,chengxiangdian_y],"b","LineWidth",1)
plot([chengxiangdian_x-0.1,jiaodian_x+1],[0,0],"b","LineWidth",1)
plot([chengxiangdian_x,0],[chengxiangdian_y,chengxiangdian_y],"r","LineWidth",1)

k1 = chengxiangdian_y/chengxiangdian_x;

xx = chengxiangdian_x-0.1:0.1:1;
yy = xx.*k1;

plot(xx,yy)

k2 = -chengxiangdian_y/jiaodian_x;

xx = 0:0.1:1;
yy = xx.*k2+chengxiangdian_y;

plot(xx,yy)

%交点
xx0 = chengxiangdian_y/(k1-k2);
yy0 = k1*xx0;
plot([xx0,xx0],[0,k1*xx0],"b","LineWidth",1)

plot([jiaodian_x,0],[jiaodian_y,0.2],"b","LineWidth",1)
plot([-jiaodian_x,0],[jiaodian_y,0.2],"b","LineWidth",1)
plot([jiaodian_x,0],[jiaodian_y,-0.2],"b","LineWidth",1)
plot([-jiaodian_x,0],[jiaodian_y,-0.2],"b","LineWidth",1)

t=-pi/2*(1/3):0.01:pi/2*(1/3);%角度范围
r=1;%半径
center=[0 0];%圆心坐标
x=(cos(t).*r+center(1)-cos(pi/2*(1/3))*r)/8;
y=sin(t).*r+center(2);
plot(x,y,"k")

hold on

t=-pi/2*(1/3):0.01:pi/2*(1/3);%角度范围
r=1;%半径
center=[0 0];%圆心坐标
x=(-cos(t).*r+center(1)+cos(pi/2*(1/3))*r)/8;
y=-sin(t).*r+center(2);
plot(x,y,"k")

axis equal

效果如下:

坐标自己在代码段修改,凸透镜的大小和焦距自己修改。

偶透镜大致代码如下:

t=-pi/2*(1/3):0.01:pi/2*(1/3);%角度范围
r=1;%半径
center=[0 0];%圆心坐标
x=cos(t).*r+center(1)-cos(pi/2*(1/3))*r-0.2;
y=sin(t).*r+center(2);
plot(x,y)

hold on

t=-pi/2*(1/3):0.01:pi/2*(1/3);%角度范围
r=1;%半径
center=[0 0];%圆心坐标
x=-cos(t).*r+center(1)+cos(pi/2*(1/3))*r+0.2;
y=-sin(t).*r+center(2);
plot(x,y)

axis equal

 效果如下(如需光路图需要自己添加功能):

 

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值