Beispiel #1
0
        // get angle from three 3D points
        public static double getAngle(Point3D A, Point3D B, Point3D C)
        {
            double AB = Math.Sqrt(
                Math.Pow(B.getX() - A.getX(), 2) +
                Math.Pow(B.getY() - A.getY(), 2) +
                Math.Pow(B.getZ() - A.getZ(), 2));

            double BC = Math.Sqrt(
                Math.Pow(C.getX() - B.getX(), 2) +
                Math.Pow(C.getY() - B.getY(), 2) +
                Math.Pow(C.getZ() - B.getZ(), 2));

            double CA = Math.Sqrt(
                Math.Pow(A.getX() - C.getX(), 2) +
                Math.Pow(A.getY() - C.getY(), 2) +
                Math.Pow(A.getZ() - C.getZ(), 2));

            if ((-Math.Pow(CA, 2) + Math.Pow(AB, 2) + Math.Pow(BC, 2)) / (2 * AB * BC) < -1 ||
                (-Math.Pow(CA, 2) + Math.Pow(AB, 2) + Math.Pow(BC, 2)) / (2 * AB * BC) > 1)
            {
                Console.WriteLine("!!" + (-Math.Pow(CA, 2) + Math.Pow(AB, 2) + Math.Pow(BC, 2)) / (2 * AB * BC));
            }

            return((180 / 3.14) * Math.Acos((-Math.Pow(CA, 2) + Math.Pow(AB, 2) + Math.Pow(BC, 2)) / (2 * AB * BC)));
        }
Beispiel #2
0
        public Line3D(Point3D A, Point3D B)
        {
            x0 = A.getX();
            l = B.getX() - A.getX();

            y0 = A.getY();
            m = B.getY() - A.getY();

            z0 = A.getZ();
            n = B.getZ() - A.getZ();
        }
Beispiel #3
0
        public Line3D(Point3D A, Point3D B)
        {
            x0 = A.getX();
            l  = B.getX() - A.getX();

            y0 = A.getY();
            m  = B.getY() - A.getY();

            z0 = A.getZ();
            n  = B.getZ() - A.getZ();
        }
Beispiel #4
0
     // get angle from three 3D points
     public static double getAngle(Point3D A, Point3D B, Point3D C) {
     double AB = Math.Sqrt(
                     Math.Pow(B.getX() - A.getX(),2) +
                     Math.Pow(B.getY() - A.getY(),2) + 
                     Math.Pow(B.getZ() - A.getZ(),2));
     
     double BC = Math.Sqrt(
                     Math.Pow(C.getX() - B.getX(),2) +
                     Math.Pow(C.getY() - B.getY(),2) + 
                     Math.Pow(C.getZ() - B.getZ(),2));
     
     double CA = Math.Sqrt(
                     Math.Pow(A.getX() - C.getX(),2) +
                     Math.Pow(A.getY() - C.getY(),2) + 
                     Math.Pow(A.getZ() - C.getZ(),2));
     
     if ((-Math.Pow(CA, 2) + Math.Pow(AB, 2) + Math.Pow(BC, 2)) / ( 2 * AB * BC) < -1 ||
             (-Math.Pow(CA, 2) + Math.Pow(AB, 2) + Math.Pow(BC, 2)) / ( 2 * AB * BC) > 1)
         Console.WriteLine("!!" + (-Math.Pow(CA, 2) + Math.Pow(AB, 2) + Math.Pow(BC, 2)) / ( 2 * AB * BC));
     
     return (180/3.14) * Math.Acos((-Math.Pow(CA, 2) + Math.Pow(AB, 2) + Math.Pow(BC, 2)) / ( 2 * AB * BC) );
     
 }