Компьютерная модель движения тела на языке Delphi
[1]Нет, спасибо, я не танцую (фр.).
[2]Гладстон, Ее британское величество (англ.).
[3]Звонят! Что это? (фр.).
[4]Извините, я сейчас (фр.).
[5]«Райский аромат» (фр.).
[6]«Путешествия в некоторые отдаленные страны света Лемюэля Гулливера, сначала хирурга, а потом капитана нескольких кораблей, в 4 частях» (англ.).
Исследование физических моделей Формальная модель. Для формализации модели используем известные из курса физики формулы равномерного и равноускоренного движения. При заданных начальной скорости v0 и угле бросания α; значения координат дальности полета x и высоты y от времени можно описать следующими формулами: x = v0 ·cosα· t y = v0 ·sinα· t – g·t2/2 (3.1) Площадка расположена на поверхности земли, поэтому из второй формулы можно выразить время, которое понадобится мячику, чтобы достичь площадки: v0·sinα·t – g·t2/2 = 0 t·(v0·sinα – g·t/2) = 0 Значение времени t = 0 не имеет физического смысла, поэтому: v0·sinα – g·t/2 = 0 t = (2·v0·sinα)/g Подставим полученное выражение для времени в формулу для вычисления координаты х: x = (v0·cosα·2·v0·sinα)/g = (v02·sin2α)/g Формализуем теперь условие попадание мячика в площадку. Пусть площадка расположена на расстоянии s и имеет длину l. Тогда попадание произойдет, если значение координаты х мячика будет удовлетворять условию в форме неравенства: s ≤ х ≤ s + l *Задание с развернутым ответом. Попадет ли мячик, брошенный со скоростью 18 м/с под углом 30 градусов, в площадку длиной 1 метр, находящуюся на расстоянии 25 метров. Компьютерная модель движения тела на языке Delphi На основе формальной модели, описывающей движение тела брошенного под углом к горизонту, создадим компьютерную модель с использованием системы программирования Delphi. Создадим сначала графический интерфейс проекта. Объявить константы G и Pi. Создать программный код событийной процедуры, определяющей попадание мячика в мишень. Поместить на форму кнопку Button1 и создать для нее событийную процедуру TForm1.Button1Click, в которой: · объявить вещественные переменные V0, A, S, L и X; · присвоить переменным V0, A, S, L значения, введенные в текстовые поля, с использованием функции преобразования строки в вещественное число StrToFloat(); · вычислить координату Х мячика в момент падения на поверхность; · вывести координату Х мячика в поле метки Label1 с использованием функции преобразования типа данных FloatToStr(L); · вывести текстовое сообщение о результатах броска в поле метки Label2 с использованием инструкции if-then-else: //Попадание в площадку X:= Sqr(V0)*Sin(2*A*Pi/180)/G; Label1.Caption:= FloatToStr(X); if X<S then Label2.Caption:= 'Недолет' else if X<S+L then Label2.Caption:= 'Попадание' else Label2.Caption:= 'Перелет'; Для визуализации формальной модели построить траекторию движения тела (график зависимости высоты мячика над поверхностью земли от дальности полета). Снабдить график осями координат со шкалами и вывести положение площадки. Поместить на форму графическое поле Image1, в котором будет осуществляться построение графика. Поместить на форму кнопку Button2. Создать событийной процедуру TForm1.Button2Click, в которой: · объявить вещественные переменные V0, A, S, L и T; · объявить целочисленные переменные X, Y и N; · присвоить переменным V0, A, S, L значения, введенные в текстовые поля; · построить траекторию движения мячика на объекте Image1.Canvas; while T<5 Do begin T:=T+0.005; Y:=380-Round(30*(V0*Sin(A*Pi/180)*T-G*T*T/2)); X:= 5+Round(10*(V0*Cos(A*Pi/180)*T)); Pixels[X,Y]:=clBlack; end; · построить оси X и Y со шкалами и мишень. Компьютерный эксперимент. Например, при скорости бросания мячика v0 = 18 м/с и угле бросания α = 34 градуса мячик попадет в площадку длиной l = 1 м и находящуюся на расстоянии S = 30 м на расстоянии х=30,6151364322769 м., целесообразно результат округлить до трех значащих цифр x = 30,6 м.
|