Esempio n. 1
0
 /// <summary>
 /// Creates a new Vector from locA to locB
 /// </summary>
 /// <param name="locA">Start location</param>
 /// <param name="locB">End location</param>
 public Vector2D(Location2D locA, Location2D locB)
 {
     X       = locB.X - locA.X;
     Y       = locB.Y - locA.Y;
     Length  = Math.Sqrt(LengthSquared());
     Radians = Y < 0 ? 2 * Math.PI - Math.Acos(X / Length) : Math.Acos(X / Length);
 }
Esempio n. 2
0
 public Vector2D(Location2D coords)
 {
     X       = coords.X;
     Y       = coords.Y;
     Length  = Math.Sqrt(LengthSquared());
     Radians = Y < 0 ? 2 * Math.PI - Math.Acos(X / Length) : Math.Acos(X / Length);
 }
Esempio n. 3
0
        /// <summary>
        /// MAY NOT WORK
        /// </summary>
        /// <param name="loc1"></param>
        /// <param name="loc2"></param>
        public LineEquation(Location2D loc1, Location2D loc2)
        {
            Vector2D vector = new Vector2D(loc1, loc2);

            A = vector.Y;
            B = vector.X;
            C = -(A * loc1.X + B * loc1.Y);
        }
Esempio n. 4
0
        public LineEquation(Location2D coordinate, double slope)
        {
            double a = slope;
            double b = coordinate.Y - (coordinate.X * slope);

            A = a;
            B = -1;
            C = b;
        }
Esempio n. 5
0
        public LineEquation(Location2D coordinate, Vector2D orthogonalVector)
        {
            A = -orthogonalVector.X / orthogonalVector.Y;
            B = -1;
            C = coordinate.Y - (coordinate.X * A);

            /*
             * A = orthogonalVector.X;
             * B = orthogonalVector.Y;
             * C = coordinate.Y - coordinate.X*B/A;
             */
        }
Esempio n. 6
0
 public LineEquation Tangent(Location2D loc)
 {
     if (PointIsPartOf(loc))
     {
         Vector2D vecPC = new Vector2D(loc, new Location2D(A, B));
         return(new LineEquation(loc, vecPC));
     }
     else
     {
         throw new Exception("The point is not part of the circle");
     }
 }
Esempio n. 7
0
 public Location2D Midpoint(Location2D loc)
 {
     return(new Location2D((loc.X + X) / 2, (loc.Y + Y) / 2));
 }
Esempio n. 8
0
 public double DistanceTo(Location2D loc)
 {
     return(Math.Sqrt(DistanceToSquared(loc)));
 }
Esempio n. 9
0
 public double DistanceToSquared(Location2D loc)
 {
     return(Math.Pow(loc.X - X, 2) + Math.Pow(loc.Y - Y, 2));
 }
Esempio n. 10
0
 public Location2D(Location2D loc)
 {
     X = loc.X;
     Y = loc.Y;
 }
Esempio n. 11
0
 public bool PointIsPartOf(Location2D loc)
 {
     return(Math.Pow(loc.X - A, 2) + Math.Pow(loc.Y - B, 2) == Math.Pow(R, 2));
 }
Esempio n. 12
0
 /// <summary>
 /// Creates a circle function with loc as centre and lf as tangent.
 ///
 /// </summary>
 /// <param name="loc"></param>
 /// <param name="lf"></param>
 public Circle(Location2D loc, LineEquation lf)
 {
     A = loc.X;
     B = loc.Y;
     R = loc.DistanceTo(lf);
 }
Esempio n. 13
0
 public LinearParameter2D(Location2D loc1, Location2D loc2)
 {
     B = new Vector2D(loc1);
     A = new Vector2D(loc1, loc2);
 }