GSSolver Class
高斯-赛德尔迭代约束方程求解
构造器
GSSolver
(
-
[options]
参数:
-
[options]Object 可选-
[iterations=10]Number 可选 -
[tolerance=0]Number 可选
-
项目索引
方法
Methods
addEquations
(
-
eqs
添加多个方程,作用同 .addEquation,但参数为包含多个方程的数组
参数:
-
eqsArray
has
(
Boolean
-
type -
listener
检查这一事件监听器是否添加
参数:
-
typeString -
listenerFunction
Returns:
Boolean:
off
(
EventEmitter
-
type -
listener
移除这一事件监听器
参数:
-
typeString -
listenerFunction
Returns:
EventEmitter:
自身,用于链式调用
on
(
EventEmitter
-
type -
listener
添加一个事件监听器
参数:
-
typeString -
listenerFunction
Returns:
EventEmitter:
自身,用于链式调用
removeAllEquations
()
移除当前所有的方程
sortEquations
()
使用 .equationSortFunction将所有方程排序,应在求解前被子类调用
Properties
equations
Array
求解器中当前的所有方程
equationSortFunction
Function | Boolean
用于将所有方程在求解前进行排序的函数
frictionIterations
Number
用于估算摩擦(F_friction = mu * F_normal)使用的法向力的求解迭代次数, 这些摩擦力将抵消设置的其他摩擦力。如果你将frictionIterations 设置为0, 则这一功能将被禁用
仅在法向力估值(F_normal = mass * gravity)不够适合的情况下使用 frictionIterations > 0,例如在太空游戏中,重力为0,或在堆叠时,下部的法向力大而上部的法向力小;
Default: 0
iterations
Number
求解时的最大迭代次数,越大结果越好,但性能开销越大
tolerance
Number
每个约束的容差,如果总误差低于此值,求解器将停止迭代,设置为0能尽可能的得到更精确的结果,但大于0时计算速度会更快
Default: 1e-7
usedIterations
Number
最后一次求解过程中产生的迭代次数,如果.tolerance 为0,那么该值总是等于.iterations,但如果.tolerance 大于0时,求解器会更早退出,那么这个数字将介于1 - .iterarions 之间
useZeroRHS
Boolean
设置为true 会在求解时将所有右侧项设置为0, 对于小型应用来说很方便
