コード例 #1
0
        private void Button_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(txtTiempoI.Text);

            double tiempoFinal = double.Parse(txtTiempoF.Text);

            double frecuenciaMuestreo = double.Parse(txtFrecMuestreo.Text);

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

            double periodoMuestreo = 1.0 / frecuenciaMuestreo;

            plnGrafica.Points.Clear();
            for (double i = tiempoInicial; i <= tiempoFinal; i += periodoMuestreo)
            {
                plnGrafica.Points.Add(new Point(i * scrGrafica.Width, señal.evaluar(i) * scrGrafica.Height * -1));
            }
        }
コード例 #2
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);

            double periodoMuestreo =
                1.0 / frecuenciaMuestreo;

            double amplitudMaxima = 0.0;

            plnGrafica.Points.Clear();

            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, valorMuestra);
                señal.Muestras.Add(muestra);
            }

            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,
                                   tiempoInicial, amplitudMaxima));
        }