Esempio n. 1
0
 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();
 }
Esempio n. 2
0
        /// <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();
        }
Esempio n. 3
0
 ///<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();
 }