Пример #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            ff();
            // Task selection
            int t = 0;

            if (radioButton3.Checked)
            {
                t = 1;
            }
            if (radioButton4.Checked)
            {
                t = 2;
            }
            // Task selection

            // Reckoning
            Koshi task = new Koshi(t, Convert.ToDouble(textBox2.Text), Convert.ToDouble(textBox1.Text));

            if (task.type == 2)
            {
                task.a = Convert.ToDouble(textBox8.Text); task.b = Convert.ToDouble(textBox9.Text); task.c = Convert.ToDouble(textBox10.Text); task.v0 = Convert.ToDouble(textBox11.Text);
            }
            Method     meth   = new Method(checkBox1.Checked, Convert.ToDouble(textBox6.Text), Convert.ToInt32(textBox5.Text), Convert.ToDouble(textBox3.Text), Convert.ToDouble(textBox4.Text), Convert.ToDouble(textBox7.Text));
            ResultData result = meth.ProcessTask(task);

            // Reckoning

            // Table print
            //int p = 1;
            //if (result.i.Length > 1000) p = 10 * result.i.Length/1000;
            groupBox3.Visible = true;
            int edge = (result.Nstep + 1 > 100) ? 100 : result.Nstep;

            for (int i = 0; i < edge; i++)
            {
                dataGridView1.Rows.Add();
                if (result.syst)
                {
                    String v  = '(' + Convert.ToString(result.vii[i, 0]) + ", " + Convert.ToString(result.vii[i, 1]) + ')';
                    String v2 = '(' + Convert.ToString(result.v2ii[i, 0]) + ", " + Convert.ToString(result.v2ii[i, 1]) + ')';
                    String m  = '(' + Convert.ToString(result.minusi[i, 0]) + ", " + Convert.ToString(result.minusi[i, 1]) + ')';
                    dataGridView1.Rows[i].SetValues(result.i[i], result.xi[i], v, v2, m, result.olp[i], result.hi[i], result.div[i], result.db[i], result.ui[i], result.minus2[i]);
                }
                else
                {
                    dataGridView1.Rows[i].SetValues(result.i[i], result.xi[i], result.vi[i], result.v2i[i], result.minus[i], result.olp[i], result.hi[i], result.div[i], result.db[i], result.ui[i], result.minus2[i]);
                }
            }
            // Table print

            label13.Text += Convert.ToString(result.Nstep);
            label14.Text += Convert.ToString(result.xi[result.Nstep - 1]);
            label15.Text += Convert.ToString(result.olp.Max());
            label16.Text += Convert.ToString(result.db.Sum());
            label17.Text += Convert.ToString(result.div.Sum());
            label18.Text += Convert.ToString(result.hi.Max());
            label19.Text += Convert.ToString(result.hi.Min());

            if (!result.syst)
            {
                //label12.Text = Convert.ToString(result.minus2.Max());
                chart1.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
                for (int i = 0; i < result.Nstep; i++)
                {
                    chart1.Series[0].Points.AddXY(result.xi[i], result.vi[i]);
                }
                chart1.Series[0].BorderWidth = 8;
                chart1.Series.Add("НАСТОЯЩЕЕ РЕШЕНИЕ");
                chart1.Series[1].ChartType       = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
                chart1.Series[1].BorderWidth     = 3;
                chart1.Series[1].ShadowOffset    = 1;
                chart1.Series[1].BorderDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Dot;
                for (int i = 0; i < result.Nstep; i++)
                {
                    chart1.Series[1].Points.AddXY(result.xi[i], result.ui[i]);
                }
                if (task.type == 0)
                {
                    label12.Text += Convert.ToString(result.minus2.Max());
                }
            }
            else
            {
                tabPage3.Show();
                chart1.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
                for (int i = 1; i < result.Nstep; i++)
                {
                    chart1.Series[0].Points.AddXY(result.xi[i], result.vii[i, 0]);
                }
                chart1.Series[0].BorderWidth = 4;
                chart2.Series.Add("МОЯ ТРАЕКТОРИЯ");
                chart2.Series[0].ChartType   = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
                chart2.Series[0].BorderWidth = 4;
                for (int i = 1; i < result.Nstep; i++)
                {
                    chart2.Series[0].Points.AddXY(result.vii[i, 0], result.vii[i, 1]);
                }
            }
            //setdef();
        }