.
Моделирование систем. Урок 3. Усовершенствуем программу моделирования (Chart)
Автор megabax   
24.09.2012 г.
New Page 2

Моделирование систем. Урок 3. Усовершенствуем программу моделирования (Chart)

Исходники к уроку можно скачать здесь.

Сегодня мы немного усовершенствуем программу моделирования системы "Хищник, жертва, растения". В частности, добавим график изменения численности хищников, травоядных и растений:

Моделирование систем. Урок 3. Усовершенствуем программу моделирования (Chart)

График мы будем строить через компонент Chart:

Моделирование систем. Урок 3. Усовершенствуем программу моделирования (Chart)

Вот как теперь будет программно выглядеть процесс симуляции:

        private void btnSimul_Click(object sender, EventArgs e)

        {

 

            _area = new Area();

            _area.availabalArea = Convert.ToDouble(tbAvailabalArea.Text);

            _area.herbivore = new Herbivore();

            _area.herbivore.count = Convert.ToInt32(tbHerbirove.Text);

            _area.herbivore.foodNeed = Convert.ToDouble(tbHerbiroveFood.Text);

            _area.herbivore.growthSpeed = Convert.ToDouble(tbHerbiroveSpeed.Text);

 

            _area.plant = new Plant();

            _area.plant.count = Convert.ToInt32(tbPlants.Text); ;

            _area.plant.countOnAreaUnit = Convert.ToDouble(tbCountOnAreaUnit.Text);

            _area.plant.growthSpeed = Convert.ToDouble(tbGrowthSpeed.Text);

 

            _area.predator = new Predator();

            _area.predator.count = Convert.ToInt32(tbPredators.Text);

            _area.predator.foodNeed = Convert.ToInt32(tbPredatorsFood.Text);

            _area.predator.growthSpeed = Convert.ToDouble(tbGrowthSpeedPred.Text);

           

           

            chGraphic.Series.Clear();

            chGraphic.Series.Add("Травоядные");

            chGraphic.Series.Add("Растения");

            chGraphic.Series.Add("Хищники");

            chGraphic.Series[0].ChartType = SeriesChartType.Line;

            chGraphic.Series[0].BorderWidth = 3;

            chGraphic.Series[1].ChartType = SeriesChartType.Line;

            chGraphic.Series[1].BorderWidth = 3;

            chGraphic.Series[2].ChartType = SeriesChartType.Line;

            chGraphic.Series[2].BorderWidth = 3;

 

            int cn = Convert.ToInt32(tbCount.Text);

 

            for (int i = 1; i < cn; i++)

            {

                chGraphic.Series[0].Points.AddXY(i, _area.herbivore.count);

                chGraphic.Series[1].Points.AddXY(i, _area.plant.count);

                chGraphic.Series[2].Points.AddXY(i, _area.predator.count);

                _area.liveLoop();

            }

        }

Как я уже говорил на прошлом уроке, какие бы параметры мы не выставляли, все кончится тем, что хищники сожрут всех травоядных и сами помрут с голоду. А растения, которые теперь никто не ест, будут свободно размножаться, пока не займут все отведенную им площадь. Давайте попробуем использовать другие параметры:

Моделирование систем. Урок 3. Усовершенствуем программу моделирования (Chart)

Кстати, вы наверняка заметили, что данная модель очень далека от жизни: в реальности не бывает так, что растения, животные размножаются с постоянной скоростью, вне зависимости от численности популяции. Обычно бывает какой то естественный прирост в % от общего количества особей данного вида. С хищниками и травоядными у нас в модели это правило соблюдается. А с растениями нет. Вот и мы это и исрпавим в нашей модели, но это уже тема следующего урока.


Скриншоты, приведенные в данной статье, являются цитатами и иллюстрациями   программного продукта "Microsoft Visual Studio 2010", авторское право на который принадлежит Microsoft


 

 

Последнее обновление ( 24.09.2012 г. )