/// <summary> /// Crosses the product. /// </summary> /// <param name="point">The point.</param> /// <returns>Vector3D.</returns> public Vector3D CrossProduct(Vector3D point) { double[] matrix = VectorLibrary.CrossProduct( Xcomponent, Ycomponent, Zcomponent, point.Xcomponent, point.Ycomponent, point.Zcomponent); return(new Vector3D(matrix[0], matrix[1], matrix[2])); }
/// <summary> /// Cross-product of two vectors. /// </summary> /// <param name="vector">The vector.</param> /// <param name="angleRadians">The angle radians.</param> /// <returns>System.Double.</returns> public double CrossProductAt(VectorParametric vector, double angleRadians) { return(VectorLibrary.CrossProduct( _curveParametric.Xcomponent.ValueAt(angleRadians), _curveParametric.Ycomponent.ValueAt(angleRadians), vector._curveParametric.Xcomponent.ValueAt(angleRadians), vector._curveParametric.Ycomponent.ValueAt(angleRadians))); }
/// <summary> /// Returns a normalized vector. /// </summary> /// <param name="xComponent">The x component.</param> /// <param name="yComponent">The y component.</param> /// <param name="tolerance">The tolerance.</param> /// <returns>Vector.</returns> /// <exception cref="Exception">Ill-formed vector. Vector magnitude cannot be zero.</exception> public static Vector UnitVector(double xComponent, double yComponent, double tolerance = Numbers.ZeroTolerance) { double magnitude = VectorLibrary.Magnitude(xComponent, yComponent); xComponent /= magnitude; yComponent /= magnitude; return(new Vector(xComponent, yComponent, tolerance)); }
/// <summary> /// Dots the product. /// </summary> /// <param name="point">The point.</param> /// <returns>System.Double.</returns> public double DotProduct(Vector3D point) { return(VectorLibrary.DotProduct( Xcomponent, Ycomponent, Zcomponent, point.Xcomponent, point.Ycomponent, point.Zcomponent)); }
/// <summary> /// Length of this vector. /// </summary> /// <returns>System.Double.</returns> public double Magnitude() { return(VectorLibrary.Magnitude(Xcomponent, Ycomponent)); }
/// <summary> /// Returns a normal unit vector to the supplied components. /// </summary> /// <param name="xComponent">The x component.</param> /// <param name="yComponent">The y component.</param> /// <param name="tolerance">The tolerance.</param> /// <returns>Vector.</returns> public static Vector UnitNormalVector(double xComponent, double yComponent, double tolerance = Numbers.ZeroTolerance) { double magnitude = VectorLibrary.Magnitude(xComponent, yComponent, tolerance); return(new Vector(-yComponent / magnitude, xComponent / magnitude, tolerance)); }
/// <summary> /// Cross-product of two vectors. /// </summary> /// <param name="vector">The vector.</param> /// <returns>System.Double.</returns> public double CrossProduct(Vector vector) { return(VectorLibrary.CrossProduct(Xcomponent, Ycomponent, vector.Xcomponent, vector.Ycomponent)); }
/// <summary> /// Magnitudes the specified angle radians. /// </summary> /// <param name="angleRadians">The angle radians.</param> /// <returns>System.Double.</returns> public double Magnitude(double angleRadians) { return(VectorLibrary.Magnitude( _curveParametric.Xcomponent.ValueAt(angleRadians), _curveParametric.Ycomponent.ValueAt(angleRadians))); }