为了账号安全,请及时绑定邮箱和手机立即绑定

计算合力那块听不懂

var delta = x.length() - relation;

// f = k * x

f = f.add(x.normalize(delta * k));

这两行代码不太懂


正在回答

1 回答

var delta = x.length() - relation;

x是两点之间的矢量, x.length()是两点之间的长度,

delta就是两点之间的长度与relation之差。

f = f.add(x.normalize(delta * k));

delta * k 是用一个常量k将delta转化为一个合适的值,这个值控制着每一帧(大概每1/60秒)变化的位移变化量。

x是两点之间的矢量,

x.normalize(delta*k) 是x的单位矢量乘以delta*k的长度,也就是从点a到点b的方向上,移动delta*k的距离

f.add(...) 累加上述移动。


理解这个首先要理解:

1、这个是每帧动画执行,大概每1/60秒执行一次,

2、每次执行时,因两点之间的距离计算出作用力的大小,然后根据作用力的大小计算出每帧需要移动的距离和方向。

这个也就是对位移的微分。。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

计算合力那块听不懂

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信