Пример #1
0
        private void BtnGraficar_Click(object sender, RoutedEventArgs e)
        {
            double amplitud           = double.Parse(txtAmplitud.Text);
            double fase               = double.Parse(txtFase.Text);
            double frecuencia         = double.Parse(txtFrecuencia.Text);
            double tiempoInicial      = double.Parse(txtTiempoInicial.Text);
            double tiempoFinal        = double.Parse(txtTiempoFinal.Text);
            double frecuenciaMuestreo = double.Parse(txtFrecuenciaMuestreo.Text);

            /*SeñalSenoidal señal = new SeñalSenoidal(amplitud, fase, frecuencia);*/

            /*SeñalParabolica señal = new SeñalParabolica();*/

            //FuncionSigno señal = new FuncionSigno();

            ImpulsoUnitario señal = new ImpulsoUnitario();

            double periodoMuestreo = 1.0 / frecuenciaMuestreo;

            double amplitudMaxima = 0.0;

            plnGrafica.Points.Clear();

            foreach (Muestra muestra in señal.Muestras)
            {
                plnGrafica.Points.Add(adaptarCoordenadas(muestra.X, muestra.Y, tiempoInicial, amplitudMaxima));
            }

            for (double i = tiempoInicial; i <= tiempoFinal; i += periodoMuestreo)
            {
                double  valorMuestra = señal.evaluar(i);
                Muestra muestra      = new Muestra(i, valorMuestra);
                señal.Muestras.Add(muestra);
                if (Math.Abs(valorMuestra) > amplitudMaxima)
                {
                    amplitudMaxima = Math.Abs(valorMuestra);
                }
            }

            for (double i = tiempoInicial; i <= tiempoFinal; i += periodoMuestreo)
            {
                plnGrafica.Points.Add(adaptarCoordenadas(i, señal.evaluar(i), tiempoInicial, amplitudMaxima));
            }
            lblAmplitudSuperior.Text = amplitudMaxima.ToString();
            lblAmplitudInferior.Text = "-" + amplitudMaxima.ToString();
            plnEjeX.Points.Clear();
            plnEjeX.Points.Add(adaptarCoordenadas(tiempoInicial, 0.0, tiempoInicial, amplitudMaxima));
            plnEjeX.Points.Add(adaptarCoordenadas(tiempoFinal, 0.0, tiempoInicial, amplitudMaxima));

            plnEjeY.Points.Clear();
            plnEjeY.Points.Add(adaptarCoordenadas(0.0, amplitudMaxima, tiempoInicial, amplitudMaxima));
            plnEjeY.Points.Add(adaptarCoordenadas(0.0, -amplitudMaxima, tiempoInicial, amplitudMaxima));
        }
Пример #2
0
        private void BtnGraficar_Click(object sender, RoutedEventArgs e)
        {
            //convertido de String a Variable Num
            double amplitud           = double.Parse(txtAmplitud.Text);
            double fase               = double.Parse(txtFase.Text);
            double frecuencia         = double.Parse(txtFrecuencia.Text);
            double frecuenciaMuestreo = double.Parse(txtFrecuenciaMuestreo.Text);
            double tiempoInicial      = double.Parse(txtTiempoInicial.Text);
            double tiempoFinal        = double.Parse(txtTiempoFinal.Text);

            //Mandar a llamar
            //SeñalSenoidal señal = new SeñalSenoidal(amplitud, fase, frecuencia);
            //SeñalParabolica señal = new SeñalParabolica();
            //FuncionSigno señal = new FuncionSigno();
            ImpulsoUnitario señal = new ImpulsoUnitario();

            double periodoMuestreo = 1.0 / frecuenciaMuestreo;

            //Declarar la Amplitud Máxima
            double amplitudMaxima = 0.0;

            //Para borrar la grafica anterior
            plnGrafica.Points.Clear();

            //para poder reuperar el valor de la señal
            for (double i = tiempoInicial; i <= tiempoFinal; i += periodoMuestreo)
            {
                double valorMuestra = señal.evaluar(i);
                if (Math.Abs(valorMuestra) > amplitudMaxima)
                {
                    amplitudMaxima = Math.Abs(valorMuestra);
                }
                Muestra muestra = new Muestra(i, señal.evaluar(i));
                señal.Muestras.Add(muestra);
            }
            //para graficar los puntos
            foreach (Muestra muestra in señal.Muestras)
            {
                plnGrafica.Points.Add(adaptarCoordenadas(muestra.X, muestra.Y, tiempoInicial, amplitudMaxima));
            }

            lbllimiteSuperior.Text = amplitudMaxima.ToString();
            lbllimiteInferior.Text = "-" + amplitudMaxima.ToString();

            plnEjeX.Points.Clear();
            plnEjeX.Points.Add(adaptarCoordenadas(tiempoInicial, 0.0, tiempoInicial, amplitudMaxima));
            plnEjeX.Points.Add(adaptarCoordenadas(tiempoFinal, 0.0, tiempoInicial, amplitudMaxima));

            plnEjeY.Points.Clear();
            plnEjeY.Points.Add(adaptarCoordenadas(0.0, amplitudMaxima, tiempoInicial, amplitudMaxima));
            plnEjeY.Points.Add(adaptarCoordenadas(0.0, amplitudMaxima * -1, tiempoInicial, amplitudMaxima));
        }