예제 #1
0
        public HessePlane(ICoordinated a, ICoordinated b, ICoordinated c)
        {
            NormalVector = (b.Minus(a)).CrossProduct(c.Minus(a));
            NormalVector.Normalize();

            RootDistance = a.ScalarProduct(NormalVector);
            if (RootDistance < 0)
            {
                RootDistance   *= -1;
                NormalVector.X *= -1;
                NormalVector.Y *= -1;
                NormalVector.Z *= -1;
            }
        }
예제 #2
0
        //public static Vector Subtr(this ICoordinated a, ICoordinated b)
        //{
        //    var vector = new Vector();

        //    vector.X = a.X - b.X;
        //    vector.Y = a.Y - b.Y;
        //    vector.Z = a.Z - b.Z;

        //    return vector;
        //}
        public static double DistanceValue(this ICoordinated vector, HessePlane plane)
        {
            return(vector.ScalarProduct(plane.NormalVector) - plane.RootDistance);
        }