Example #1
0
 /// <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]));
 }
Example #2
0
 /// <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)));
 }
Example #3
0
        /// <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));
        }
Example #4
0
 /// <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));
 }
Example #5
0
 /// <summary>
 /// Length of this vector.
 /// </summary>
 /// <returns>System.Double.</returns>
 public double Magnitude()
 {
     return(VectorLibrary.Magnitude(Xcomponent, Ycomponent));
 }
Example #6
0
        /// <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));
        }
Example #7
0
 /// <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));
 }
Example #8
0
 /// <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)));
 }