public Segmento Equidista(double Equidistancia) { //Equidistancia > 0 => equidisa hacia la izquierda Punto V1 = new Punto(this.Inicio.X, this.Inicio.Y, 0.0);//2D Punto V2 = new Punto(this.Final.X, this.Final.Y, 0.0);//2D Punto V = new Punto(V2.X - V1.X, V2.Y - V1.Y, 0.0);//2D double Vd = V1.Distancia(V2); if (Vd == 0.0) { //Punto inicial y final son el mismo return(this); } else { //vector unitario Punto v = new Punto(V.X / Vd, V.Y / Vd, 0.0); //vector equidistancia perpendicular Punto u = new Punto(-v.Y * Equidistancia, v.X * Equidistancia, 0.0); Segmento Res = new Segmento( new Punto(this.Inicio.X + u.X, this.Inicio.Y + u.Y, this.Inicio.Z + u.Z), new Punto(this.Final.X + u.X, this.Final.Y + u.Y, this.Final.Z + u.Z)); return(Res); } }