这个布局器以物理模拟方式计算元素之间 的相互作用力, 并据此进行布局 。默认情况 下,节点互相排斥 , 边充当弹簧 ,产生拉力 (类似空气阻力)。 这个算法可多次 迭代以 一次性计算出布局 ,或者也可以重复运行 ,以产生出一种动态更新 和交互式( 将设置 Visualization.continuousUpdates 为 true )的动画效果。
这个布局算法的运行时间是O(N log N) 和O(E)中的较大者,其中N 表示节点 的数个,E 表示边的个数。如果 向模拟过程中加入了其它的力,则可能会影响运行时间。
以力为基础的布局 器是使用 flare.physics 包中提供的物理引擎实现 的。用来驱动 这个布局过程 的模拟 器( Simulation ) 可显式设置, 这样就可以 通过选择 IForce 模块的方式创建支持任意数量的自定义 力 的 布局器 。模拟过程 中, 布局 器中的每个节点都被映射为一个粒子( Particle )实例,每个边被映射为一个弹簧( Spring )实例。 一旦模拟器被初始化了,妳就可以通过 node.props.particle 和 edge.props.spring 属性来获取这些实例。
参考
HxLauncher: Launch Android applications by voice commands