Exemplo n.º 1
0
        public static float Cos(VectorF first, VectorF second)
        {
            if (first.Length() == 0 || second.Length() == 0)
            {
                return(0);
            }

            return(ScalarMultiply(first, second) / (first.Length() * second.Length()));
        }
Exemplo n.º 2
0
        public static PointPosition Classify(VectorF s, VectorF e, VectorF p)
        {
            VectorF a = e - s;
            VectorF b = p - s;
            double  d = a.X * b.Y - b.X * a.Y;

            if (d > 0.0)
            {
                return(PointPosition.LEFT);
            }
            if (d < 0.0)
            {
                return(PointPosition.RIGHT);
            }
            if ((a.X * b.X < 0.0) || (a.Y * b.Y < 0.0))
            {
                return(PointPosition.BEHIND);
            }
            if (a.Length() < b.Length())
            {
                return(PointPosition.FRONT);
            }
            if (p == s)
            {
                return(PointPosition.ORIGIN);
            }
            if (p == e)
            {
                return(PointPosition.DESTINATION);
            }
            return(PointPosition.BETWEEN);
        }