SOURCE

/////////////////////////////////////////////////
// Definition of required vector math functions
// as plugin for the calculations.
// Change this to adapt to your favourite vector library.
var MathFunc = {
    add: function(a, b) {
        return [
            a[0] + b[0],
            a[1] + b[1],
            a[2] + b[2]
        ];
    },
    sub: function(a, b) {
        return [
            a[0] - b[0],
            a[1] - b[1],
            a[2] - b[2]
        ];
    },
    mulScalar: function(a, s) {
        return [
            a[0] * s,
            a[1] * s,
            a[2] * s
        ];
    },
    dot: function(a, b) {
        return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
    },
    lengthSquared: function(a) {
        return a[0]*a[0] + a[1]*a[1] + a[2]*a[2];
    }
};
/////////////////////////////////////////////



//// THE EXAMPLE ////
var motionpredict = require('lethexa-motionpredict').withMathFunc(MathFunc);

// Calculate TCPA
var position1 = [0,0,0];
var velocity1 = [0,1,0];

var position2 = [0,1,0];
var velocity2 = [0,0,0];

var tcpa = motionpredict.calcCPATime(position1,velocity1,position2,velocity2);
console.log('TCPA=' + tcpa);



// Calculate intercept time
var icptPos = [0,0,0];
var icptVelo = 1.0;

var targetPos = [1,0,0];
var targetVelo = [0,0,0];

var ticpt = motionpredict.calcInterceptTime(icptPos,icptVelo,targetPos,targetVelo);

console.log('T intercept=' + ticpt);
console 命令行工具 X clear

                    
>
console