Ejemplo n.º 1
0
        /// <summary>
        ///     Localiza un punto en el triangulo utilizando los vectores unitarios (coordenadas trilineales).
        /// </summary>
        /// <param name="p">Punto.</param>
        /// <returns>Parametros u, v.</returns>
        public double[] Project01(Point2d p)
        {
            Vector2d po = (p - this.P0);

            double u, v;

            Geom2DUtils.Resolve(this.VX, this.VY, po, out u, out v);

            return(new[] { u, v });
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Evalua la proyeccion del punto sobre la linea, respecto del origen.
        /// </summary>
        /// <param name="p">Punto.</param>
        /// <returns>Parametro [-Inf, Inf].</returns>
        public double Project(Point2d p)
        {
            Vector2d diff = p - this.Origin;

            double u;

            if (this.IsNormal)
            {
                //REAL v = this.Normal.Dot(diff);
                u = this.Direction.Dot(diff);
            }
            else
            {
                double v;
                Geom2DUtils.Resolve(this.Direction, this.Normal, diff, out u, out v);
            }
            return(u);
        }