private void Centrar(object sender, EventArgs e) { grafica.DesplazarA(new Point(((grafica.Ventana.Height) / 2), (grafica.Ventana.Width) / 2)); grafica.Escala = 10; btZoomMas.PerformClick(); btZoomMenos.PerformClick(); }
/// <summary> /// /// CENTRA Y ESCALA LA PANTALLA AUTOMATICAMENTE /// /// </summary> /// private void btCentrar_Click(object sender, EventArgs e) { Racional coordenadamaxima = apintar.CoordenadaMaxima; // Coordenada mas grande del centro del circulo if (coordenadamaxima.Numerador < 0) // Pasar a valor absoluto { coordenadamaxima = new Racional(coordenadamaxima.Numerador * -1, coordenadamaxima.Denominador); } coordenadamaxima += radio; float maximafloat = (float)((float)coordenadamaxima.Numerador / (float)coordenadamaxima.Denominador); maximafloat = Math.Abs(maximafloat); // Escalar if ((float)Math.Round((double)(ventanagrafica.Ventana.Height / 10) / maximafloat) > 1) // Coordenada maxima del centro y radio mas pequeños que el area grafica { ventanagrafica.Escala = (float)Math.Round((double)(ventanagrafica.Ventana.Height / 10) / (double)maximafloat) * 10; } else // Coordenada maxima o radio, mas grandes que el area grafica { ventanagrafica.Escala = (float)Math.Round((double)(ventanagrafica.Ventana.Height) / (double)(maximafloat), 0); // Coordenada maxima del centro o radio mas grandes que el area grafica } if (radio > apintar.CoordenadaMaxima) { ventanagrafica.Escala /= 2; } if (ventanagrafica.Escala == 0) { ventanagrafica.Escala = 0.1F; } // Desplazar if ((apintar.X.Numerador > 0 && apintar.Y.Numerador > 0) || (apintar.X.Numerador == 0 && apintar.Y.Numerador > 0) || (apintar.X.Numerador > 0 && apintar.Y.Numerador == 0) || (apintar.X.Numerador == 0 && apintar.Y.Numerador == 0)) // Centro en el primer cuadrante { Racional desplazamientoy = radio - apintar.X; if (desplazamientoy < 0) { desplazamientoy = 0; } int desplazamienty = (int)(desplazamientoy.Numerador / desplazamientoy.Denominador); desplazamienty *= (int)(ventanagrafica.Escala); Racional desplazamientox = radio - apintar.Y; if (desplazamientox < 0) { desplazamientox = 0; } int desplazamientx = (int)(desplazamientox.Numerador / desplazamientox.Denominador); desplazamientx *= (int)(ventanagrafica.Escala); ventanagrafica.DesplazarA(new Point(ventanagrafica.Ventana.Height - desplazamientx - 40, desplazamienty + 10)); } else if (apintar.X < 0 && apintar.Y > 0) { Racional desplazamientoy = radio + apintar.X; if (desplazamientoy < 0) { desplazamientoy = 0; } int desplazamienty = (int)(desplazamientoy.Numerador / desplazamientoy.Denominador); desplazamienty *= (int)(ventanagrafica.Escala); Racional desplazamientox = radio - apintar.Y; if (desplazamientox < 0) { desplazamientox = 0; } int desplazamientx = (int)(desplazamientox.Numerador / desplazamientox.Denominador); desplazamientx *= (int)(ventanagrafica.Escala); ventanagrafica.DesplazarA(new Point(ventanagrafica.Ventana.Height - desplazamientx - 10, ventanagrafica.Ventana.Width - desplazamienty - 40)); } else if (apintar.X < 0 && apintar.Y < 0) { Racional desplazamientoy = radio + apintar.X; if (desplazamientoy < 0) { desplazamientoy = 0; } int desplazamienty = (int)(desplazamientoy.Numerador / desplazamientoy.Denominador); desplazamienty *= (int)(ventanagrafica.Escala); Racional desplazamientox = radio - apintar.Y; if (desplazamientox < 0) { desplazamientox = 0; } int desplazamientx = (int)(desplazamientox.Numerador / desplazamientox.Denominador); desplazamientx *= (int)(ventanagrafica.Escala); ventanagrafica.DesplazarA(new Point(ventanagrafica.Ventana.Height - desplazamientx - 10, ventanagrafica.Ventana.Width - desplazamienty - 40)); } else if (apintar.X > 0 && apintar.Y < 0) { //ventanagrafica.DesplazarA(new Point(5, 40)); Racional desplazamientoy = radio - apintar.X; if (desplazamientoy < 0) { desplazamientoy = 0; } int desplazamienty = (int)(desplazamientoy.Numerador / desplazamientoy.Denominador); desplazamienty *= (int)(ventanagrafica.Escala); Racional desplazamientox = radio - apintar.Y; if (desplazamientox < 0) { desplazamientox = 0; } int desplazamientx = (int)(desplazamientox.Numerador / desplazamientox.Denominador); desplazamientx *= (int)(ventanagrafica.Escala); ventanagrafica.DesplazarA(new Point(5 + desplazamientx + 10, 40 + desplazamienty)); } ventanagrafica.Ventana.Invalidate(); }
///<Summary> /// /// MUEVE EL GRAFICO AL CENTRO CADA VEZ QUE SE PULSA EL BOTON /// ///</Summary> /// private void btCentrar_Click(object sender, EventArgs e) { grafica.DesplazarA(new Point(grafica.Ventana.Height / 2, grafica.Ventana.Width / 2)); grafica.Ventana.Invalidate(); }