例谈GGB创作技巧——材料

GGB
Author

黄轶凡

Published

May 17, 2024

时间控制模块

  1. 添加布尔变量 isStart,用于控制计时的开始或暂停

    isStart=false

  2. 添加变量 t,表示动画运行的总时间,根据需要在设置调节 t 的区间

    t=0

  3. 添加变量 dt,表示步进的时间间隔

    dt=0.02

  4. 添加滑动条 speed,控制动画播放速度

    speed=slider(1,10,1)

  5. 添加滑动条 N,启动动画后,我们通过在 N 的 Update 事件中添加脚本来刷新物体位置、速度等来实现物体的运动

    N=slider(0,1/dt,1,speed)

  6. 在 N 的 update 事件中添加脚本

    SetValue(t,t+dt)
  7. 添加按钮 animationControl = Button("开始"),用于控制动画,在其 Click 事件中添加脚本

    SetValue(isStart,!isStart)
    StartAnimation(N,isStart)
    SetCaption(animationControl,if(isStart,"停止","开始"))
  8. 添加按钮 reset = Button("归零"),用于使时间 t 归零。其 Click 事件中添加脚本

    SetValue(isStart,false)
    StartAnimation(N,isStart)
    SetCaption(animationControl,"开始")
    SetValue(t,0)
  9. 添加按钮 refresh=Button("清除轨迹"),用于清除轨迹(如果有轨迹)。其 Click 事件中添加脚本

    ZoomIn(1);

在磁场区域内的运动

  1. 添加变量,带电体质量 m=1、带电量 q=1、磁感应强度 B=1

  2. 带电体位置 P=(0,0) 、速度 v=(1,0,0)

  3. 磁感应强度的矢量 vectorB=(0,0,B)

  4. 带电体加速度 a_B=q/m*Cross(v,vectorB)

  5. 在 q 的 update 事件中添加脚本,实现 P 点颜色随电荷正负变化

    If(q<0,SetColor(P,"Blue"),q>0,SetColor(P,"Red"))
  6. 绘制任意形状作为磁场区域,命名为 regionB

注意

绘制形状尽量不要用到 B、E 这些代表物理量的符号

  1. 在 N 的 update 事件中添加脚本,用于控制步进

    If(IsInRegion(P,regionB), SetValue(v, abs(v)* UnitVector(v+a_B*dt)));
    SetValue(P,P+v*dt);
  2. 添加向量 vDisplay=Vector(P,P+v),用于显示速度

在复合场中的运动

应用实例