计算合力那块听不懂
var delta = x.length() - relation;
// f = k * x
f = f.add(x.normalize(delta * k));
这两行代码不太懂
var delta = x.length() - relation;
// f = k * x
f = f.add(x.normalize(delta * k));
这两行代码不太懂
2018-02-27
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、每次执行时,因两点之间的距离计算出作用力的大小,然后根据作用力的大小计算出每帧需要移动的距离和方向。
这个也就是对位移的微分。。
举报