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

бесплатно 0
4.5 70
Разработка игровой программы, моделирующей поведение мяча в закрытом безвоздушном пространстве. Изменение значения гравитации и трения о стены. Интерфейс программы, ее основная форма. Блок-схема программы и ее основной код. Добавление третьего измерения.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
Модель - объект произвольной природы, который отражает главные, с точки зрения решаемой задачи, свойства объекта моделирования. Моделирование повсеместно используется в науке, так как является упрощенным, а иногда и единственным методом получении информации о свойствах объекта, его диагностики, а также прогнозировании. В данном примере мы рассматриваем мяч - мягкий упругий предмет сферической либо овальной формы, в основном используемый в спортивных играх. Пользователь должен иметь возможность изменять значения гравитации, и трения о стены. программа схема блок код Кнопка Bounce придает мячу случайную скорость в случайном направлении.С помощью ввода различных значений трения и гравитации, а также изменения размера поля, можно получить и исследовать различные результаты.

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

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

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

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

Цель работы

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

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

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

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

Основная форма содержит: 1. Основное поле, по которому прыгает мяч.

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

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

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

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

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

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

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

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

Блок-схема программы

Блок-схема программы имеет вид (рис.2).

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

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

Следующим образом мяч совершает прыжки по полю. public void timer1_Tick (object sender, EVENTARGS e)

{

// Создается Bitmap, из которого будет рисоваться мяч. bmp = new Bitmap (PICTUREBOX1. Width, PICTUREBOX1. Height);

g = Graphics. FROMIMAGE (bmp);

rand = new Random ();

// При первой загрузке, мяч появляется из случайного места поля. if (l! =true) {

X = rand. Next (6, PICTUREBOX1. Size. Width - 56);

Y = rand. Next (6, PICTUREBOX1. Size. Height - 56);

} l = true;

col = PICTUREBOX1. BACKCOLOR;

col2 = Color. Black;

p = new Pen (col1);

black = new Pen (col2,6);

SOLIDBRUSH REDBRUSH = new SOLIDBRUSH (col1);

SOLIDBRUSH white = new SOLIDBRUSH (col);

// Вычисление трения по значениям TRACKBAR2. Как видно, фронтальное столкновение забирает больше энергии, чем поперечное. if (TRACKBAR2. Value! = 0)

{

TRENIEX = (TRACKBAR2. Value - ( (TRACKBAR2. Value - 1) (TRACKBAR2. Value - 1) / 10.0)) * 0.75;

TRENIEY = (TRACKBAR2. Value - ( (TRACKBAR2. Value - 1) (TRACKBAR2. Value - 1) / 10.0)) * 0.95;

} else { TRENIEX = 1; TRENIEY = 1; }

MOVEY = gravity;

// Очистка поля. g. Clear (PICTUREBOX1. BACKCOLOR);

X = MOVEX;

Y = MOVEY;

X1 = (float) X;

Y1 = (float) Y;

// Отрисовка мяча. g. DRAWELLIPSE (black, X1, Y1, 50, 50);

g. FILLELLIPSE (REDBRUSH, X1, Y1, 50, 50);

PICTUREBOX1. Image = bmp;

// Проверка столкновения с границами поля. if (X <= 0)

{

X = 0;

MOVEX = - MOVEX;

MOVEX *= TRENIEX;

MOVEY *= TRENIEY;

} if (X >= PICTUREBOX1. Size. Width - 56)

{

X = PICTUREBOX1. Size. Width - 56;

MOVEX = - MOVEX;

MOVEX *= TRENIEX;

MOVEY *= TRENIEY;

} if (Y <= 0)

{

Y = 0;

MOVEY = - MOVEY;

MOVEY *= TRENIEX;

MOVEX *= TRENIEY;

} if (Y >= PICTUREBOX1. Size. Height - 56)

{

Y = PICTUREBOX1. Size. Height - 56;

MOVEY = - MOVEY;

MOVEY *= TRENIEX;

MOVEX *= TRENIEY;

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

{

// Заставляем мяч прыгнуть. if ( (Math. Abs (MOVEX) = PICTUREBOX1. Size. Height - 60) && (bounc))

{

MOVEX = (rand. NEXTDOUBLE () rand. NEXTDOUBLE ()) - 1;

MOVEY = - (rand. NEXTDOUBLE ());

MOVEX *= 50;

MOVEY *= 50;

X = MOVEX;

Y = MOVEY;

}

}

}

}

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

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

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

Размещено на .ru

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?