public static double getLongitud(Punto2d[] trayecto) { double resultado = 0; for (int i = 0; i < trayecto.Length - 1; i++){ resultado += trayecto[i].distancia(trayecto[i+1]); } return resultado; }
public static void getLongitudInicioFin(Punto2d[] trayecto, out double longitud, out Punto2d principio, out Punto2d final) { longitud = getLongitud(trayecto); principio = new Punto2d(trayecto[0].x, trayecto[0].y, Color.Rojo); final = new Punto2d(trayecto.Last().x, trayecto.Last().y, Color.Negro); Console.WriteLine("Longitud: {0}", longitud); Console.WriteLine("Punto inicial: {0}", principio); Console.WriteLine("Longitud: {0}", final); }
public static Punto2d[] generaTrayecto(int longitud = 10, double laX = 0.0, double laY = 0.0, double incX = 1.0, double incY = 1.0) { Punto2d[] trayecto = new Punto2d[longitud]; trayecto[0] = new Punto2d(laX, laY, Color.Rojo); for (int i = 0; i < longitud - 1; i++){ incrementaDosDouble(ref laX, ref laY, incX, incY); trayecto[i] = new Punto2d(laX, laY, Color.Rojo); } return trayecto; }
static void Main(string[] args) { // LONGITUD Punto2d[] trayecto = { new Punto2d(1, 2, Color.Negro), new Punto2d(4, 2, Color.Negro), new Punto2d(4, 10, Color.Negro)}; Console.WriteLine("LONGITUD: {0}", CalculosTrayectos.getLongitud(trayecto)); //LONGITUD INICIO FIN double longitud = 10; Punto2d inicial = new Punto2d(1,1,Color.Transparente); Punto2d final = new Punto2d(2,2,Color.Transparente); CalculosTrayectos.getLongitudInicioFin(trayecto, out longitud, out inicial, out final); }
public static void muestraTrayecto(Punto2d[] trayecto, bool? mostrar) { if (mostrar == true) { Punto2d[] primerCuadrante = (from punto in trayecto where punto.x >= 0 && punto.y >= 0 select punto).ToArray(); Console.WriteLine("PRIMER CUADRANTE:"); foreach (Punto2d p in primerCuadrante) { Console.WriteLine(p); } } else { Console.WriteLine("TODOS LOS PUNTOS:"); foreach (Punto2d p in trayecto) { Console.WriteLine(p); } } }
static void Main(string[] args) { //DISTANCIA ENTRE PUNTOS Punto2d a = new Punto2d(10, 20, Color.Negro); Punto2d b = new Punto2d(20, 10, Color.Rojo); Console.WriteLine("Punto A: {0} || Punto B: {1}", a.ToString(), b.ToString()); Console.WriteLine("La distancia entre el punto A y el punto B es => {0}", a.distancia(b)); //INTERSECCIÓN RECTA Recta y0 = new Recta(50, 60); Recta y1 = new Recta(60, 50); Console.WriteLine("Intersección de las rectas se produce en el punto: {0}", y0.interseccionRecta(y1)); //PERPENDICULAR DE UN PUNTO Console.WriteLine("La perpendicular del punto A es: {0}", y0.perpendicular(a)); //DISTANCIA ENTRE RECTA Y PUNTO Console.WriteLine("Distancia entre la perpendicular y el punto donde intersecta: {0}", y0.distanciaEntreRectaYPunto(a)); }
/// <summary> /// Distancia entre 2 puntos /// </summary> /// <param name="a">Punto al que llegar</param> /// <returns></returns> public double distancia(Punto2d a) { return Math.Sqrt((this.x - a.x) * (this.x - a.x) + (this.y - a.y) * (this.y - a.y)); }
/// <summary> /// Método para calcular la perpendicular de un punto, devuelve una recta(perpendicular) /// </summary> /// <param name="punto">Punto desde el que se obtiene la recta perpendicular</param> /// <returns>Una recta</returns> public Recta perpendicular(Punto2d punto) { double nuevaM = (-1 / this.m); double nuevaN = ((punto.y + (1 / this.m) * punto.x)); return new Recta(nuevaM, nuevaN); }
/// <summary> /// Método para calcular la distancia entre una recta y un punto /// </summary> /// <param name="a">a es el Punto desde el que se calculara la distancia hacia la recta, para ello hacemos uso /// de los anteriores métodos /// </param> /// <returns>Retorna un valor doble, que será la distancia entre dicha recta y punto</returns> public double distanciaEntreRectaYPunto(Punto2d a) { Recta rectaAux = perpendicular(a); Punto2d interseccion = interseccionRecta(rectaAux); return a.distancia(interseccion); }
public Circunferencia tangenteCentro(Punto2d punto) { //Recta r = new Recta(centro.x, centro.y); //r.perpendicular(punto); return null; }
public Circunferencia(Punto2d elCentro, double elRadio) { centro = elCentro; radio = elRadio; }