Scratch编程与物理-用Scratch学习“光的折射”

网友投稿 2019-11-28 11:57

一、什么是光的折射? 光的折射是指,光从一种介质斜射入另一种介质时,传播方向发生改变,从而使光线在不同介质的交界处发生偏折。 在生活中,我们把筷子或者笔插入水中,看到笔在水面处发生了弯折,这就是由于光的折射引起的。 如下图所示,一束光从A点斜射入水中,在水面处发生偏折,垂直于水面画一条法线,入射光线与法线之前的夹角就是入射角,折射光线与法线之间的夹角就是折射角。 光的折射有哪些特性呢? 1、当光线从空气斜射入其它介质时,角的性质:折射角(折射率大的一方)小于入射角(折射率小的一方)。 2、光的折射率为:光从介质1射入介质2发生折射时,入射角与折射角 的正弦之比叫做介质2相对介质1的折射率,即“相对折射率”,也就是说 水、空气、玻璃的折射率由小到大的排列顺序是: 空气的折射率<水的折射率<玻璃的折射率。 空气的折射率约是1。 水的折射率约是1.33。 透明玻璃的折射率约是1.5。 3、在光的折射现象中,光路是可逆的。 二、鱼在水中发生的折射现象 我们在陆地上看到水中的“鱼”,如果往“鱼”看到的地方刺去,可能会刺不中“鱼”。但是如果往“鱼”的更深处刺去,就可以刺到鱼,这就是光的折射引起的。 我们要看到鱼,就是鱼反射的光线进入我们的眼睛。当光从水中传入空气中,发生了折射,我们顺着折射光线看去,看到的鱼其实是“鱼”的像,比真实的鱼的位置要浅。 现在,我们人眼看到了鱼的“像”,已知人眼的位置和“鱼像”的位置,我们来求得鱼的真实位置,用Scratch来模拟这个过程吧。 三、程序的设计 1、计算入射角的大小 已知鱼像的位置和眼睛的位置,可以确定入射角,计算入射角的大小 根据直线方程y = ax + b,已知直线上的两点:眼睛和鱼像, 求得a和b的值,即可确定这条直线。 a = (y1-y0)/(x1-x0),求得直线的斜率。 这条直线与水面的交点,就是光线发生偏折的位置,也就可以确定法线。 上面求得的直线的斜率 a = tan(90+入射角),即可求得入射角 2、计算折射角。 根据上面介绍的相对折射率的公式, 已知n1为空气中的折射率(n1=1),n2为水中的折射率(n2 = 1.33) 为入射角,求得折射角。 3、求鱼的真实位置 根据折射角,法线的位置,即可求得折线光线的路径。 已经鱼的x值 = 鱼像的x值,带入直线方程,即可求得鱼的y值。 四、程序的实现 程序的主要逻辑代码如下: 用Scratch模拟光的折射原理,是不是很有趣啊,赶快动手试试吧

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com