Исследование физических моделей d Visual Basic
Исследование физических моделейМКОУ «Усть-Багарякская СОШ»
Рассмотрим процесс построения и исследования модели на конкретном примере движения тела, брошенного под углом к горизонту.
Содержательная постановка задачи. В процессе тренировок теннисистов используются автоматы по бросанию мячика в определенное место площадки. Необходимо задать автомату необходимую скорость и угол бросания мячика для попадания в мишень определенного размера, находящуюся на известном расстоянии.
Качественная описательная модель. Сначала построим качественную описательную модель процесса движения тела с использованием физических объектов, понятий и законов, то есть в данном случае идеализированную модель движения объекта. Из условия задачи можно сформулировать следующие основные предположения:мячик мал по сравнению с Землей, поэтому его можно считать материальной точкой;
изменение высоты мячика мало, поэтому ускорение свободного падения можно считать постоянной величиной g = 9,8 м/с2 и движение по оси OY можно считать равноускоренным;скорость бросания тела мала, поэтому сопротивлением воздуха можно пренебречь и движение по оси ОХ можно считать равномерным.
Формальная модель. Для формализации модели используем известные из курса физики формулы равномерно равноускоренного движения. При заданных начальной скорости v0 и угле бросания α значения координат дальности полета х и высоты у от времени можно описать следующими формулами:
x=v0·cosα·ty=v0·sin α ·t-g·t2/2
Графический интерфейс проекта «Бросание мячика»Разместить на форме:четыре текстовых поля для ввода значений: TextBox1 — начальной скорости, TextBoxt2 — угла бросания мячика, TextBox3 — расстояния до мишени и TextBox4 — высоты мишени;надпись Label1 для вывода высоты мячика на заданном расстоянии;надпись Label2 для вывода текстового сообщения о результатах броска;
Графический интерфейс проекта «Бросание мячика»восемь надписей для вывода имен переменных и единиц измерения;кнопку Button1 для создания событийной процедуры вычисления результатов бросания мячика;кнопку Button2 для демонстрации траектории движения мячика.
Событийная процедура вычисления результатов бросания мячика. Создадим программный код событийной процедуры, определяющей попадание мячика в стенку, в которой:объявим вещественные константы одинарной точности G (ускорение свободного падения g) и Pi (число п);объявим вещественные переменные одинарной точности V0 (начальная скорость v0), А (угол бросания а), S (расстояние до стенки s), Н (высота стенки h) и L (высота мячика I);
присвоим переменным V0, A, S, Н значения, введенные в текстовые поля, с использованием функции преобразования строки в вещественное число Val();вычислим высоту мячика L на заданном расстоянии по формуле;выведем высоту мячика L в поле надписи Label 1;
выведем текстовое сообщение о результатах броска в поле надписи Label2 с использованием инструкции Select Case, в которой в качестве условия проверяется значение переменной L.В языке программирования Visual Basic аргументы тригонометрических функций Sin (), Cos () и Tan () задаются в радианах, а угол бросания мячика мы будем вводить в градусах. Поэтому необходимо преобразовать значения углов из градусов в радианы с использованием константы Pi.
Событийная процедура демонстрации траектории движения мячика.Для визуализации компьютерной модели построим в графическом поле траекторию движения мячика.Поместить дополнительно на форму графическое поле PictureBox1. С помощью диалогового окна Свойства установить с использованием свойства Size размер поля, например 400; 220.В событийной процедуре осуществим преобразование компьютерной системы координат графического поля в математическую систему координат, удобную для построения траектории движения. Нарисуем оси координат и нанесем на них шкалы.
Const G As Single = 9.81Const Pi As Single = 3.14Dim V0, A, S, L, H As SinglePrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Ввод начальных значенийV0 = Val(TextBox1.Text)A = Val(TextBox2.Text)S = Val(TextBox3.Text)H = Val(TextBox4.Text) 'Попадание в стенкуL = S * Math.Tan(A * Pi / 180) - (G * S ^ 2) / (2 * V0 ^ 2 * Math.Cos(A * Pi / 180) ^ 2)Label1.Text = L
Select Case LCase Is < 0Label2.Text = "Недолет" Case Is > HLabel2.Text = "Перелет" Case ElseLabel2.Text = "Попадание" End Select End SubDim Graph1 As GraphicsDim Pen1 As New Pen(Color.Black, 4)Dim drawBrush As New SolidBrush(Color.Black)Dim drawFont As New Font("Arial", 10)Dim X, Y, T As Single
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.ClickGraph1 = Me.PictureBox1.CreateGraphics()Graph1.Clear(Color.White) 'Печать шкал математической системы координат в компьютерной системе координатFor X = 0 To 400 Step 50Graph1.DrawString(X / 10, drawFont, drawBrush, X, 200)Next XFor Y = 20 To 220 Step 50Graph1.DrawString((Y - 20) / 10, drawFont, drawBrush, 0, 220 - Y)Next Y 'Преобразование компьютерной системы координат в математическую систему координатGraph1.ScaleTransform(1, -1) 'Поворот оси YGraph1.TranslateTransform(0, -200) 'Сдвиг по оси Y
'Рисование осей математической системы координатGraph1.DrawLine(Pen1, 0, 0, 400, 0) 'Ось ХGraph1.DrawLine(Pen1, 0, -20, 0, 200) 'Ось Y 'МишеньGraph1.DrawLine(Pen1, S * 10, 0, S * 10, H * 10) 'Построение траектории движения мячикаFor T = 0 To 10 Step 0.1Y = V0 * Math.Sin(A * Pi / 180) * T - G * T * T / 2X = V0 * Math.Cos(A * Pi / 180) * TGraph1.DrawEllipse(Pen1, X * 10, Y * 10, 1, 1)Next T End SubEnd Class