计算合力那块听不懂

来源:7-4 SVG-力导向图

一一梦一一

2018-02-27 15:04

var delta = x.length() - relation;

// f = k * x

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

这两行代码不太懂


写回答 关注

1回答

  • 我吃西瓜很快
    2018-05-04 16:46:51

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

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

走进SVG

SVG是HTML5 中矢量图的标记语言,学习后掌握更多的干货

52643 学习 · 213 问题

查看课程

相似问题