public Lab3Window() { BasisFunctions = new string[] { "Pow(x, k)", "Sin(k*x)" }; func = (x) => (Math.Exp(Math.Sin(x))); basis = (x, k) => (Math.Pow(x, k)); //basis = (x, k) => (Math.Sin(x*k)); lst_x = new List <double>(); for (int i = 0; i < 60; i++) { lst_x.Add(0.1 * i); } k_basis = new List <int>(); for (int i = 0; i < 10; i++) { k_basis.Add(i); } InitializeComponent(); //combobox.itemssource = basisfunctions; slider.Minimum = 0; slider.Maximum = k_basis.ToArray()[k_basis.Count - 1]; slider.Value = 1; model = new ApproximationModel( int.Parse(slider.Value.ToString()), lst_x.ToArray(), basis, func); }
private async void btnChangeTime_Click(object sender, RoutedEventArgs e) { try { int kolvo = int.Parse(txtTime.Text); chart.Series[ChartSerieName].Points.Clear(); model = new ApproximationModel(kolvo, lst_x.ToArray(), basis, func); chart.Series[ChartSerieName].Points.DataBindXY(lst_x, model.getValues()); chart.Series["Original"].Points.Clear(); chart.Series["Original"].Points.DataBindXY(lst_x, model.getOriginalValues()); slider.Value = kolvo; } catch { form.Visibility = Visibility.Hidden; await this.ShowMessageAsync("Неверный формат", "Количество может быть только натуральным числом"); form.Visibility = Visibility.Visible; } }
private void slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs <double> e) { try { slider.Value = Math.Round(slider.Value); chart.Series[ChartSerieName].Points.Clear(); model = new ApproximationModel(int.Parse(slider.Value.ToString()), lst_x.ToArray(), basis, func); try { chart.Series[ChartSerieName].Points.DataBindXY(lst_x, model.getValues()); chart.Series["Original"].Points.DataBindXY(lst_x, model.getOriginalValues()); } catch (Exception) { Debug.WriteLine(slider.Value); } txtBlock.Text = slider.Value.ToString(); } catch (Exception ex) { Debug.WriteLine("SLIDER CHANGED EXCEPTION\n\n" + ex.ToString()); } }
private void comboBox_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { if (comboBox.SelectedValue.ToString() == BasisFunctions[1]) { basis = (x, k) => (Math.Sin(x * k)); } else { basis = (x, k) => (Math.Pow(x, k)); } chart.Series[ChartSerieName].Points.Clear(); model = new ApproximationModel(int.Parse(slider.Value.ToString()), lst_x.ToArray(), basis, func); try { chart.Series[ChartSerieName].Points.DataBindXY(lst_x, model.getValues()); chart.Series["Original"].Points.DataBindXY(lst_x, model.getOriginalValues()); } catch (Exception) {} }