Flash制作关于光的折射和全反射规律的动画教程

2019-10-08 11:44:45丽君

zs._alpha=0;
}

  大家可能会问,zs._alpha = 100-i*60;这一句的算法是如何的,根据物理规律,当折射角越大,其能量越小,当折射为90度时发生全反射,对应的折射光线能量为零,在动画中反映为其_alpha值越来越小,按实际计算为zs._alpha = 100-i*63.7的,但考虑实际效果,算了,就这样吧。反之反射光线能量越来越大,当发生全反射时,能量最大,等于入射光的强度,用代码fs._alpha = i*60实现,怎么样,清楚吗?

  剩下的是当入射光线在第四象限时的了,也看一下类似的图

Flash制作关于光的折射和全反射教程

  对应代码如下


复制代码}elseif(x>250){
r=Math.PI/2-A;
if(r<C){
i=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;