/// <summary> /// Метод, запускает процесс моделирования. /// В нем происходит задание начальных величин из полей ввода. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { // Обнуляем все величины pictureBox1.InitialImage = null; rectangle.Y = 0F; // Устанавливаем положение travellingDistance = 0; V = 0.0; step = (double)numericUpDown1.Value; x = 0; try { _weight = (float)Convert.ToDouble(tBWeight.Text); } catch (Exception) { MessageBox.Show("Введите вес!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (comboBox1.SelectedItem != null) { _viscosity = ModelingData.GetProps().Where(x => x.Key .Contains(comboBox1.SelectedItem.ToString())).First().Value.Item1; _density = ModelingData.GetProps().Where(x => x.Key .Contains(comboBox1.SelectedItem.ToString())).First().Value.Item2; } else { MessageBox.Show("Выберите среду!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } try { _height = (float)Convert.ToDouble(tBHeight.Text); } catch (Exception) { MessageBox.Show("Введите высоту!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // Поперечное сечение или площадь? _s = Math.PI * Math.Pow(rectangle.Height / 2, 1); // Коэффициент сопротивления _k1 = 6 * Math.PI * _viscosity * (rectangle.Height / 2); // Коэффициент сопротивления _k2 = 0.5 * C * _density * _s; // Для удобности, вес * ускорение падения _mg = G * _weight; timer1.Start(); button1.Enabled = false; }
public Form1() { InitializeComponent(); comboBox1.Items.AddRange(ModelingData.GetProps().Keys.ToArray()); }