内容正文:
第六章 GeoGebra—javascript基础语法和应用
第8节 双重for循环的的应用—分子运动模型
在自由程内,分子的运动的匀速运动,当分子遇到边界或碰到其它分子时会发生碰撞,在微观模型中,碰撞是弹性的。而分子之间的碰撞可用两小球的弹性碰撞规律计算,用双重for循环来实现任意两个分子碰撞的规律。
模型描述:设碰前两球球心分别为A1,A2,球半径为r,速度矢量分别为u1和u2,如图1所示
图1
以两球心的连心线方向和公切线方向建立自然坐标分别为l和c.
在此模型中设碰撞为弹性碰撞即:满足动量守恒定律和机械能守恒定律。碰后两球的运动方向规律描述为:沿连心线方向速度分量速度交换,沿垂直(公切线方向)速度分量不变,设碰前两球速度向量为:u1和u2.两球在两轴上的分量分别为:u1*单位向量(向量(A,B))、u1*单位法向量(向量(A,B))、u2*单位向量(向量(B,A))和u2*单位法向量(向量(B,A)),一个向量和一个单位向量的数量积即为这个向量在单位向量上的投影。
碰后规律的数学表达式为:
u1’=u2*单位向量(向量(B,A))*单位向量(向量(B,A))+u1*单位法向量(向量(A,B))*单位法向量(向量(A,B))。
u2’=u1*单位向量(向量(A,B))*单位向量(向量(A,B))+u2*单位法向量(向量(B,A))*单位法向量(向量(B,A))。
1.建立滑动条参数 t(写JS脚本)、r(分子半径)
2.构造3个内点:用执行指令execute( sequence(“A”+i+”= pointIn(q1)”,i,0,2))
3.构造3个自由向量:用执行指令execute( sequence(“u”+i+”= (1,1)”,i,0,2))
4.构造3个记录向量:用执行指令execute( sequence(“v”+i+”= (1,1)”,i,0,2))
5.构造3个记录向量:用执行指令execute( sequence(“w”+i+”= (1,1)”,i,0,2))
6.在t的更新脚本写js脚本,脚本如下:
以上脚本加了注释。
例:一个平面有六个点,在任意两点画线,即每两点之间有两条线,可以用双循环
1.构造n个点
2.建立按钮button1(写单击js脚本)
3.脚本如下
4.运行图如下:
学科网(北京)股份有限公司
$$