例谈GGB创作技巧——材料
GGB
时间控制模块
添加布尔变量 isStart,用于控制计时的开始或暂停
isStart=false添加变量 t,表示动画运行的总时间,根据需要在设置调节 t 的区间
t=0添加变量 dt,表示步进的时间间隔
dt=0.02添加滑动条 speed,控制动画播放速度
speed=slider(1,10,1)添加滑动条 N,启动动画后,我们通过在 N 的 Update 事件中添加脚本来刷新物体位置、速度等来实现物体的运动
N=slider(0,1/dt,1,speed)在 N 的 update 事件中添加脚本
SetValue(t,t+dt)添加按钮
animationControl = Button("开始"),用于控制动画,在其 Click 事件中添加脚本SetValue(isStart,!isStart) StartAnimation(N,isStart) SetCaption(animationControl,if(isStart,"停止","开始"))添加按钮
reset = Button("归零"),用于使时间 t 归零。其 Click 事件中添加脚本SetValue(isStart,false) StartAnimation(N,isStart) SetCaption(animationControl,"开始") SetValue(t,0)添加按钮
refresh=Button("清除轨迹"),用于清除轨迹(如果有轨迹)。其 Click 事件中添加脚本ZoomIn(1);
在磁场区域内的运动
添加变量,带电体质量
m=1、带电量q=1、磁感应强度B=1带电体位置
P=(0,0)、速度v=(1,0,0)磁感应强度的矢量
vectorB=(0,0,B)带电体加速度
a_B=q/m*Cross(v,vectorB)在 q 的 update 事件中添加脚本,实现 P 点颜色随电荷正负变化
If(q<0,SetColor(P,"Blue"),q>0,SetColor(P,"Red"))绘制任意形状作为磁场区域,命名为
regionB
注意
绘制形状尽量不要用到 B、E 这些代表物理量的符号
在 N 的 update 事件中添加脚本,用于控制步进
If(IsInRegion(P,regionB), SetValue(v, abs(v)* UnitVector(v+a_B*dt))); SetValue(P,P+v*dt);添加向量
vDisplay=Vector(P,P+v),用于显示速度