/** * Calulates vector which divides v1 and v2 in 1:s * * @return Vector dividing v1,v2 in 1:s */ public static Vector3D intepolate(Vector3D v1, Vector3D v2, double s) { if (s == -1) return null; return (v1.scale(s).add(v2)).scale(1 / (s + 1)); }
/** @return v1.v3(v2)-v1.v2(v3) */ public static Vector3D vectorTripleProduct(Vector3D v1, Vector3D v2, Vector3D v3) { Vector3D rv; rv = v3.scale(v1.DotProduct(v3)); rv = rv.subtract(v2.scale(v1.DotProduct(v2))); return rv; }
/** @return Component of this vector parallel to given vector */ public Vector3D Get_Parallel_Component(Vector3D dirVector3D) { return dirVector3D.scale(this.DotProduct(dirVector3D.getUnitVector())); }