您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 利用Flash技术完成光的全反射仿真模拟实验
龙源期刊网技术完成光的全反射仿真模拟实验作者:杨柳来源:《科技传播》2010年第10期摘要教学模拟是计算机模拟在教学中的应用,它可以模拟出与真实实验环境极为相似的虚拟环境,而Flash技术已经广泛在教学模拟设计中被采用,本文主要讨论了利用Flash技术完成光的全反射仿真模拟实验的应用。关键词全反射;Flash;模拟;代码中图分类号TP393文献标识码A文章编号1674-6708(2010)19-0094-020引言物理学科是一门以实验为基础的学科。通过实验可以让学生通过形象具体的实验过程使学生透彻理解并且完全掌握得出的结论。而部分物理实验对实验设备及实验环境要求较高,所以试验效果并不能尽如人意。随着信息技术的不断发展同时也为教育提供了丰富的资源,和革新机遇。以多媒体计算机技术、网络技术、现代通信技术为核心的信息技术作为最先进的教学媒体与物理演示实验的整合,可以深化物理演示实验的教学,可以达到真实实验很难达到的教学效果如放大效果、时间延迟与加快、可重复性、理想化等,很好地回避了对设备和环境的要求,在教学中我们称之为教学模拟。在物理的教学模拟中,最常见的则是模拟物理实验,利用计算机模拟真实的物理实验环境。教学模拟可分为“物理模拟、过程模拟、情景模拟和进程模拟”[1]。本文主要完成光的全反射实验的情景模拟。1利用Flash技术完成光的全反射仿真模拟实验1.1折射及全反射原理折射定律(斯涅尔定律):光入射到不同介质的界面上会发生反射和折射。其中入射光和折射光位于同一个平面上,并且与界面法线的夹角满足如下关系:n1和n2分别是两个介质的折射率,和分别是入射光(或折射光)与界面法线的夹角,叫做入射角和折射角(如图)。龙源期刊网全反射:光由光密(即光在此介质中的折射率大的)介质射到光疏(即光在此介质中折射率小的)介质的界面时,全部被反射回原介质内的现象。设定n1为光密介质折射率,此时用n表示,n2为光疏介质折射率,此时为1,也即是光疏介质为真空,得到如下关系:1.2设计思路“情景模拟(SITUATIONSIMULATION)是为了处理学生在不同情景中所作所为产生的影响”,所以特别注重真实情景的再现。首先通过Photoshop处理好本实验所需要真实装置,导入Flash为影片剪辑,拖动元件到舞台中,在属性面板中以该元件对应实物的第一个拼音字母命名。在舞台上注明分界面、法线、真空、介质、激光、半圆形玻璃砖及实验名称。除了要让学生通过感性上去认识实验,还要让学生从理性上掌握知识,所以在模拟环境设立一个数据显示区,动态地显示各个角度和阶段的数据。最后,用代码实现各项功能。代码的编辑可分3个步骤去实现:1)用代码确定好各个元件的初始位置,以分界面和法线把场景分成了4个区域,相当于数学里的第一到第四象限。限定入射光线只能在3、4象限;2)首先算出临界角的大小。拖动光源元件,如果入射角小于临界角,不发生全反射,通过代码得到入射光线与X轴正方向的夹角即入射角,再算出折射光线的折射角,对折射光线进行对应旋转。如果入射角大于临界角,则发生全反射,设定折射光线透明度为0,折射光消失;3)在数据显示区设定入射角、折射角、反射角、临界角四个动态文本框,通过代码获取四个角度数据即时显示。2核心功能语法实现Flash提供很好动作脚本语言(Actionscript,简称叫AS),通过AS可以实现很多的模拟效果,在本文中主要就是通过AS来实现的。在以下代码中jg为激光,zs为折射光线,fs为反射光线,Pm为水平面,fx为法线。设定折射率n=1.5,代码及备注如下。onEnterFrame=function(){jg.onMouseDown=function(){this.startDrag(true,0,200,500,500);};jg.onMouseUp=function(){this.stopDrag();};//当鼠标按下时jg(激光)影片剪辑可以拖动,当鼠标松开时不能拖动this.createEmptyMovieClip(mc,100);//创建一个空的影片剪辑mc,画入射光线mc.lineStyle(2,0xff0000,100);//定义线条的参数龙源期刊网(250,200);//线条的起点在圆点x=jg._x;y=jg._y;//jg的x、y坐标赋值给x、y,mc.lineTo(x,y);A=Math.atan2(y-200,x-250);//获取入射光线与x轴正向的夹角jg._rotation=A*180/Math.PI+180;//把光源也相应旋转一个角度C=Math.asin(1/n);//算出临界角ljj=Math.round(C*180*10/Math.PI)/10;//把临界角保留一位小数,方便显示if(xr=A-Math.PI/2;//得到入射角(在介质中的角度)if(ri=Math.asin(n*Math.sin(r));//算出折射角zs._rotation=-90+i*180/Math.PI;//把折射光线作相应旋转zs._alpha=100-i*60;//设置折射光线的透明度}else{//否则(发生了全反射)执行,折射光线的透明度为0zs._alpha=0;}}elseif(x250){//当入射光线在第四三象限时执行r=Math.PI/2-A;if(ri=Math.asin(n*Math.sin(r));zs._rotation=-90-i*180/Math.PI;zs._alpha=100-i*60;//得到折射光线的透明度龙源期刊网}else{zs._alpha=0;}}fs._rotation=180-A*180/Math.PI;//反射光线的旋转角度rsj=Math.round(r*180*10/Math.PI)/10;//把入射角保留到小数点后一位,显示数值if(rzsj=Math.round(i*180*10/Math.PI)/10;输出已经发生全反射}else{zsj=已全反射;}fsj=Math.round(r*180*10/Math.PI)/10;//显示数值fs._alpha=i*60;//反射光线的透明度};3结论随着Flash技术的发展,越来越多的教师选择它进行模拟实验教学,它的作用也在教学过程中得到了体现。通过调动学生各种感官,达到充分地调动学生学习的积极性、主动性的作用。为改革教学方法,优化教学过程,提高教学效果提供了优化的教学手段。参考文献[1]祝智庭.现代教育技术——走进信息化教育[M].北京:高等教育出版社,2001.[2]项国熊.周勤.多媒体课件设计基础[M].北京:高等教育出版社,2000.[3]朱勇.物理实验CAI中的教学模拟.[J].阜阳:阜阳师范学院学报,2004,1.
本文标题:利用Flash技术完成光的全反射仿真模拟实验
链接地址:https://www.777doc.com/doc-4391280 .html