/// <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 }); }
/// <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); }