% 点光源经抛物面反射
%function optical_reflect
set(gcf,"doublebuffer","on");
axis([-2,6,-5,5]);hold on
y = -4:0.01:4;
p = 1; %焦点
x = y.^2 / (4*p) - p;
plot(x,y,0,0,'r*');
Hi = plot([0,-2],[0,0],'b');%设置入射光
Hr = plot([-2,6],[0,0],'r');%设置反射光
xlabel('空格停止','fontsize',14,'color','r');
k=1;dy=0.1;%初始化k方便循环,设置入射光变化量
ty = 0;
while k
pause(0.1); %设置每个图形变换间隔0.1s
s = get(gcf,'currentkey');
if strcmp(s,'space')
k=0;
end
if abs(ty) > 3
dy = -dy;
end
ty=ty+dy;
tx=ty.^2 / (4*p) - p;
set(Hi,'xdata',[0,tx],'ydata',[0,ty]);
set(Hr,'xdata',[tx,6],'ydata',[ty,ty]);%绘制最后反射光
end
matlab 点光源经抛物面反射
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 今天青石的票圈出镜率最高的,莫过于张艺谋的新片终于定档了。 一张满溢着水墨风的海报一次次的出现在票圈里,也就是老谋...
- 一、jQuery简介 JQ是JS的一个优秀的库,大型开发必备。在此,我想说的是,JQ里面很多函数使用和JS类似,所...