% 光通过三稜镜色散 
close all 
figure('position',[78 276 792 402]); 
xp=[-0.2,0.2,0];yp=[0.2,0.2,0.5];B=pi/14; 
ZZ=[xp;yp]'*[cos(B),sin(B);-sin(B),cos(B)]; 
fill(ZZ(:,1),ZZ(:,2),[0.2,0.4,0.6]); 
axis([-1,1,0,1]);hold on;set(gca,'color','k'); 
t=0;A=pi/8;set(gcf,'doublebuffer','on'); 
x=[-1,-1];y=[0,0]; 
H=plot(x,y,'w','linewidth',6); 
while t<0.8; 
   pause(0.1); 
   t=t+0.1; 
   x(2)=-1+t*cos(A); 
   y(2)=t*sin(A); 
   set(H,'xdata',x,'ydata',y); 
end 
x1=[x(2),x(2)];y1=[y(2),y(2)];H1=plot(x1,y1,'r'); 
H2=plot(x1,y1,'color',[1,1,0]);x2=x1;y2=y1; 
H3=plot(x1,y1,'y');x3=x1;y3=y1; 
H4=plot(x1,y1,'g');x4=x1;y4=y1; 
H5=plot(x1,y1,'color',[0,1,1]);x5=x1;y5=y1; 
H6=plot(x1,y1,'b');x6=x1;y6=y1; 
H7=plot(x1,y1,'color',[1,0,1]);x7=x1;y7=y1; 
t=0; 
C=linspace(pi/16,0,7); 
s=linspace(1,1.2,7); 
while t<0.165; 
   pause(0.1); 
   t=t+0.01; 
   x1(2)=x(2)+t*cos(C(1))*s(1);y1(2)=y(2)+t*sin(C(1))*s(1); 
   x2(2)=x(2)+t*cos(C(2))*s(2);y2(2)=y(2)+t*sin(C(2))*s(2); 
   x3(2)=x(2)+t*cos(C(3))*s(3);y3(2)=y(2)+t*sin(C(3))*s(3); 
   x4(2)=x(2)+t*cos(C(4))*s(4);y4(2)=y(2)+t*sin(C(4))*s(4); 
   x5(2)=x(2)+t*cos(C(5))*s(5);y5(2)=y(2)+t*sin(C(5))*s(5); 
   x6(2)=x(2)+t*cos(C(6))*s(6);y6(2)=y(2)+t*sin(C(6))*s(6); 
   x7(2)=x(2)+t*cos(C(7))*s(7);y7(2)=y(2)+t*sin(C(7))*s(7); 
   set(H1,'xdata',x1,'ydata',y1); 
   set(H2,'xdata',x2,'ydata',y2); 
   set(H3,'xdata',x3,'ydata',y3); 
   set(H4,'xdata',x4,'ydata',y4); 
   set(H5,'xdata',x5,'ydata',y5); 
   set(H6,'xdata',x6,'ydata',y6); 
   set(H7,'xdata',x7,'ydata',y7); 
end 
C=linspace(0,-pi/8,7); 
x1(1)=[];y1(1)=[]; 
x2(1)=[];y2(1)=[]; 
x3(1)=[];y3(1)=[]; 
x4(1)=[];y4(1)=[]; 
x5(1)=[];y5(1)=[]; 
x6(1)=[];y6(1)=[]; 
x7(1)=[];y7(1)=[]; 
K1=get(H1,'color'); 
K2=get(H2,'color'); 
K3=get(H3,'color'); 
K4=get(H4,'color'); 
K5=get(H5,'color'); 
K6=get(H6,'color'); 
K7=get(H7,'color'); 
L=2:3:400;n=1; 
while t<0.5; 
   pause(0.1); 
   t=t+0.01;n=n+1; 
   plot([x1,x1+t*cos(C(1))],[y1,y1+t*sin(C(1))],... 
       'color',K1,'linewidth',L(n)); 
   plot([x2,x2+t*cos(C(2))],[y2,y2+t*sin(C(2))],... 
       'color',K2,'linewidth',L(n)); 
   plot([x3,x3+t*cos(C(3))],[y3,y3+t*sin(C(3))],... 
           'color',K3,'linewidth',L(n)); 
   plot([x4,x4+t*cos(C(4))],[y4,y4+t*sin(C(4))],... 
           'color',K4,'linewidth',L(n)); 
   plot([x5,x5+t*cos(C(5))],[y5,y5+t*sin(C(5))],... 
           'color',K5,'linewidth',L(n)); 
   plot([x6,x6+t*cos(C(6))],[y6,y6+t*sin(C(6))],... 
           'color',K6,'linewidth',L(n)); 
   plot([x7,x7+t*cos(C(7))],[y7,y7+t*sin(C(7))],... 
           'color',K7,'linewidth',L(n)); 
   x1=x1+t*cos(C(1));y1=y1+t*sin(C(1)); 
   x2=x2+t*cos(C(2));y2=y2+t*sin(C(2)); 
   x3=x3+t*cos(C(3));y3=y3+t*sin(C(3)); 
   x4=x4+t*cos(C(4));y4=y4+t*sin(C(4)); 
   x5=x5+t*cos(C(5));y5=y5+t*sin(C(5)); 
   x6=x6+t*cos(C(6));y6=y6+t*sin(C(6)); 
   x7=x7+t*cos(C(7));y7=y7+t*sin(C(7)); 
end

光通过三稜镜色散源码相关推荐

  1. hibernate 三种查询方式源码跟踪及总结

    1.设置环境(以EClipse和hibernate 3.2.6为例) 1)首先,新建一个java 工程. 2) 将hiberante src导入到java的src目录下,此时多半会报错,不用管它! 3 ...

  2. [三]RabbitMQ-客户端源码之ChannelManager

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  3. 深入java并发包源码(三)AQS独占方法源码分析

    深入java并发包源码(一)简介 深入java并发包源码(二)AQS的介绍与使用 深入java并发包源码(三)AQS独占方法源码分析 AQS 的实现原理 学完用 AQS 自定义一个锁以后,我们可以来看 ...

  4. Linux虚拟化KVM-Qemu分析(三)之KVM源码(1)kvm_init

    Table of Contents 1. 概述 2. KVM初始化 2.1 kvm_arch_init 2.1.1 init_hyp_mode 2.1.2 init_subsystems 2.2 mi ...

  5. Nginx/Openresty日志时间显示到毫秒级的三种方法(不改源码)

    Nginx/Openresty日志时间显示到毫秒级的三种方法(不改源码) 方法一 :set (只能在server节点内) 方法二: set_by_lua (只能在server节点内) 方法三: map ...

  6. 近段时间整理出的三款Android游戏源码

    这段时间休息在家的时候,整理出三款Android游戏源码,分享给大家交流学习一下. 1.会说话的汤姆猫Android版** 2.五子连珠游戏Android版**** 3.斗地主游戏Android版 欢 ...

  7. Adroid游戏开发实例讲解(三)-小蝌蚪找妈妈附源码

    Adroid游戏开发实例讲解(三)-小蝌蚪找妈妈附源码 程序之美 从小就听着小蝌蚪找妈妈的故事长大,我相信小伙伴们一定都不陌生,因为小学课本中,我们早早的就学过了小蝌蚪找妈妈这篇文章,它既是一篇文章, ...

  8. 读文章笔记(三):从源码学习Transformer

    读文章笔记(三):从源码学习Transformer encoder分为两部分: decoder 公众号机器学习算法工程师 文章链接: https://mp.weixin.qq.com/s/0NajB_ ...

  9. 多线程(三)之ReentrantLock源码解析

    2019独角兽企业重金招聘Python工程师标准>>> 今天分析ReentrantLock类的源码,在看源码之前,先学习AQS(AbstractQueuedSynchronizer) ...

最新文章

  1. 当用户控件有异动时,网页某部位作出相应变化
  2. list对象排序java_【Java】list对象(类)按某个属性排序
  3. 最强轻量级目标检测yolo fastest
  4. PS摩棒工具如何选中自己想要的区域
  5. top与bottom、left与right的优先级
  6. 教你如何用 lib-flexible 实现移动端H5页面适配
  7. (Docker实战) 第5篇:Centos7 拉取和部署搭建 NEXUS私服
  8. 火柴 UVa11375
  9. 逐句深扒 Apache 许可协议原文,一文看懂!
  10. python 延时运行命令_使用子进程延迟执行命令
  11. 【VS开发】【图像处理】RGB Bayer Color分析
  12. 【精品】Android游戏类源码大集合
  13. C++ 虚函数实现:虚函数表 虚表指针
  14. 旅游行业的手机App Top5
  15. 8月书讯(上)| 这些新书不可错过
  16. 男人不想打工一辈子,再忙也要读这10本书,提高情商智商
  17. kali2020安装最新版本Java
  18. Ubuntu下U盘只读文件系统,图标上锁,文件无法写入
  19. 易语言制作计算机按键指令,关于易语言编写计算器的问题(完整代码!!!!!!!)
  20. COCOS敌人和AI制作

热门文章

  1. win10 ltsc版本怎么安装微软商店?
  2. CentOS配置ip
  3. 数据共享与整合技术-总结01
  4. 图片转文字识别在线,图片转文字方法分享。​
  5. 笔记整理3----Java语言高级(三)11 综合练习+12 面向对象-static变量 与 代码块+13 面向对象-继承与抽象类+14 面向对象-接口与多态+15 面向对象-包修饰符
  6. 闭包的定义,原理,应用场景,优点,缺点
  7. 计算机二级vf索引建立,计算机二级VFP辅导:在VFP中建立索引文件的方法
  8. App常用性能测试工具清单
  9. python之可迭代对象简介
  10. python中def什么时候用_Python中定义函数def的使用方法