Example #1
0
 public Vector3D(Location3D loc1, Location3D loc2)
 {
     X           = loc2.X - loc1.X;
     Y           = loc2.Y - loc1.Y;
     Z           = loc2.Z - loc1.Z;
     lengthFound = false;
 }
Example #2
0
 public Vector3D(Location3D loc)
 {
     X           = loc.X;
     Y           = loc.Y;
     Z           = loc.Z;
     lengthFound = false;
 }
Example #3
0
 public Sphere(Location3D centre, Location3D point)
 {
     A = centre.X;
     B = centre.Y;
     C = centre.Z;
     R = centre.DistanceTo(point);
 }
Example #4
0
 public Sphere(Location3D centre, Plane tangent)
 {
     A = centre.X;
     B = centre.Y;
     C = centre.Z;
     R = centre.DistanceTo(tangent);
 }
Example #5
0
 public Sphere(Location3D centre, double radius)
 {
     A = centre.X;
     B = centre.Y;
     C = centre.Z;
     R = radius;
 }
Example #6
0
 /// <summary>
 /// Plane from two vectors that lie in the plane and a point
 /// </summary>
 /// <param name="vec1"></param>
 /// <param name="vec2"></param>
 /// <param name="loc"></param>
 public Plane(Vector3D vec1, Vector3D vec2, Location3D loc)
 {
     OrthogonalVector = vec1.CrossProduct(vec2);
     A = OrthogonalVector.X;
     B = OrthogonalVector.Y;
     C = OrthogonalVector.Z;
     D = -(A * loc.X + B * loc.Y + C * loc.Z);
 }
Example #7
0
 /// <summary>
 /// Plane from órthogonal vector and point.
 /// </summary>
 /// <param name="vector"></param>
 /// <param name="loc"></param>
 public Plane(Location3D loc, Vector3D vector)
 {
     OrthogonalVector = vector;
     A = OrthogonalVector.X;
     B = OrthogonalVector.Y;
     C = OrthogonalVector.Z;
     D = -(vector * loc);
 }
Example #8
0
        /// <summary>
        /// Creates two vectors that lie in the plane, and then uses the above.
        /// </summary>
        /// <param name="loc1"></param>
        /// <param name="loc2"></param>
        /// <param name="loc3"></param>
        public Plane(Location3D loc1, Location3D loc2, Location3D loc3)
        {
            Vector3D vec1 = new Vector3D(loc1, loc2);
            Vector3D vec2 = new Vector3D(loc1, loc3);

            OrthogonalVector = vec1.CrossProduct(vec2);
            A = OrthogonalVector.X;
            B = OrthogonalVector.Y;
            C = OrthogonalVector.Z;
            D = -(A * loc1.X + B * loc1.Y + C * loc1.Z);
        }
Example #9
0
 public Plane Tangent(Location3D loc)
 {
     if (PointIsPartOf(loc))
     {
         Vector3D vecPC = new Vector3D(loc, new Location3D(A, B, C));
         return(new Plane(loc, vecPC));
     }
     else
     {
         throw new Exception("The point is not part of the sphere");
     }
 }
Example #10
0
 public bool PointIsPartOf(Location3D loc)
 {
     return(Math.Pow(loc.X - A, 2) + Math.Pow(loc.Y - B, 2) + Math.Pow(loc.Z - C, 2) == Math.Pow(R, 2));
 }
Example #11
0
 public LinearParamater3D(Location3D loc, Vector3D vec)
 {
     B = new Vector3D(loc);
     A = vec;
 }
Example #12
0
 public LinearParamater3D(Location3D loc1, Location3D loc2)
 {
     B = new Vector3D(loc1);
     A = new Vector3D(loc1, loc2);
 }
Example #13
0
 public double AreaOfTriangle(Location3D loc1, Location3D loc2)
 {
     return(new Vector3D(this, loc1).CrossProduct(new Vector3D(this, loc2)).Length / 2);
 }
Example #14
0
 public double DistanceTo(Location3D loc)
 {
     return(Math.Sqrt(DistanceToSquared(loc)));
 }
Example #15
0
 public double DistanceToSquared(Location3D loc)
 {
     return(Math.Pow(loc.X - X, 2) + Math.Pow(loc.Y - Y, 2) + Math.Pow(loc.Z - Z, 2));
 }