Программа, моделирующая прыгающий мяч

  • Вид работы:
    Контрольная работа
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    59,55 Кб
  • Опубликовано:
    2012-08-26
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Программа, моделирующая прыгающий мяч

Введение


Моделирование - исследование объектов познания на их моделях; построение и изучение моделей реально существующих предметов, процессов или явлений с целью получения объяснений этих явлений, а также для предсказания явлений, интересующих исследователя.

Модель - объект произвольной природы, который отражает главные, с точки зрения решаемой задачи, свойства объекта моделирования.

Моделирование повсеместно используется в науке, так как является упрощенным, а иногда и единственным методом получении информации о свойствах объекта, его диагностики, а также прогнозировании.

В данном примере мы рассматриваем мяч - мягкий упругий предмет сферической либо овальной формы, в основном используемый в спортивных играх.

Цель работы

Целью работой является разработка программы на языке C#, моделирующей поведение мяча в закрытом безвоздушном пространстве. Пользователь должен иметь возможность изменять значения гравитации, и трения о стены.

программа схема блок код

Описание проекта


Интерфейсом программы является форма (рис.1).

Рис.1. Интерфейс программы

Основная форма содержит:

.        Основное поле, по которому прыгает мяч.

2.      Полосы прокрутки Gravity и Friction, отвечающие за гравитацию и трение соответственно. Значения выбираются по десятибалльной шкале. Значение 0 означает полное отсутствие гравитации или трения о стенки.

.        Кнопка Bounce придаёт мячу случайную скорость в случайном направлении.

.        Кнопка Defaults возвращает первоначальные значения гравитации и трения.

.        Щелчком правой кнопкой мыши по полю вызывается контекстное меню. Stop обнуляет скорость мяча. Pause приостанавливает движение мяча. Повторный щелчок на Pause возобновит движение мяча.

.        Если движение мяча приостановлено, то в нижнем правом углу появляется надпись "Paused”.

Если кинетическая энергия мяча близка к нулю, и он лежит на нижней границе поля, то он автоматически прыгнет в произвольную сторону с произвольной скоростью.

Пользователь также может перетаскивать мяч левой кнопкой мыши по его полю.

Окно формы можно растянуть, либо развернуть во весь экран.


Рис.2. Блок-схема программы

 
Основной код программы

Следующим образом мяч совершает прыжки по полю.

public void timer1_Tick (object sender, EventArgs e)

{

// Создаётся Bitmap, из которого будет рисоваться мяч.

bmp = new Bitmap (pictureBox1. Width, pictureBox1. Height);= Graphics. FromImage (bmp);= new Random ();

// При первой загрузке, мяч появляется из случайного места поля.

if (l! =true) {= rand. Next (6, pictureBox1. Size. Width - 56);= rand. Next (6, pictureBox1. Size. Height - 56);

}= true;= pictureBox1. BackColor;= Color. Black;= new Pen (col1);= new Pen (col2,6);redBrush = new SolidBrush (col1);white = new SolidBrush (col);

// Вычисление трения по значениям trackBar2. Как видно, фронтальное столкновение забирает больше энергии, чем поперечное.

if (trackBar2. Value! = 0)

{= (trackBar2. Value - ( (trackBar2. Value - 1) + (trackBar2. Value - 1) / 10.0)) * 0.75;= (trackBar2. Value - ( (trackBar2. Value - 1) + (trackBar2. Value - 1) / 10.0)) * 0.95;

}{ trenieX = 1; trenieY = 1; }+= gravity;

// Очистка поля.

g. Clear (pictureBox1. BackColor);+= moveX;+= moveY;= (float) X;= (float) Y;

// Отрисовка мяча.

g. DrawEllipse (black, X1, Y1, 50, 50);. FillEllipse (redBrush, X1, Y1, 50, 50);. Image = bmp;

// Проверка столкновения с границами поля.

if (X <= 0)

{= 0;= - moveX;*= trenieX;*= trenieY;

{= pictureBox1. Size. Width - 56;= - moveX;*= trenieX;*= trenieY;

}(Y <= 0)

{= 0;= - moveY;*= trenieX;*= trenieY;

}(Y >= pictureBox1. Size. Height - 56)

{= pictureBox1. Size. Height - 56;= - moveY;*= trenieX;*= trenieY;

}( (! pss) && (! tah))

{

// Заставляем мяч прыгнуть.

if ( (Math. Abs (moveX) <= 0.1 && Math. Abs (moveY) <= 0.86 && DateTime. Now. Second % 3 == 0 && Y >= pictureBox1. Size. Height - 60) && (bounc))

{= (rand. NextDouble () + rand. NextDouble ()) - 1;= - (rand. NextDouble ());*= 50;*= 50;+= moveX;+= moveY;

}

}

}

}

Вывод


Итак, мы получили простую и увлекательную программу, моделирующую прыгающий мяч. С помощью ввода различных значений трения и гравитации, а также изменения размера поля, можно получить и исследовать различные результаты.

Дальнейшее развитие программы можно вести в двух направлениях: в улучшении физической части, и графической. В физической части можно добавить сопротивление воздушной среды, вывод реальной скорости мяча, а также привязать значения гравитации и трения к конкретным значениям g и µ. В графической части можно добавить третье измерение, и рассматривать поведения мяча в пространстве.

Список используемой литературы


1.      Жарков В.А. Самоучитель Жаркова по анимации и мультипликации в Visual C#.net 2003. - М.: Жарков Пресс, 2003. - 432 с.

Похожие работы на - Программа, моделирующая прыгающий мяч

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!