Вопрос № 39543: Здравствуйте уважаемые эксперты! Мне нужна прога на паскале, в которой нужно изобразить движение шарика, брошенного под некоторым углом к горизонту и с некоторой начальной скоростью. Подскажите где мне её взять плз....
Вопрос № 39.543
Здравствуйте уважаемые эксперты! Мне нужна прога на паскале, в которой нужно изобразить движение шарика, брошенного под некоторым углом к горизонту и с некоторой начальной скоростью. Подскажите где мне её взять плз.
Отвечает: Артём Шегеда
Здравствуйте, Кононов Николай Анатольевич!
Хорошая постановка вопроса - "где мне её взять?" Как где? - Написать.
Простейшай формула, описывающая движение шарика, брошенного под углом к горизонту, выглядит так (считаем, что земля плоская, атмосферы нет, гравитация постоянная):
x = Vx*t+Xo
y = g*t*t/2+Vy+Yo
где
Vx - начальная горизонтальная составляющая скорости шарика,
Xo - координата X точки броска,
g - ускорение свободного падения (поскольку бросок осуществляется в сторону, противоположную направлению силы тяжести, g должно быть отрицательным),
Vy - начальная вертикальная составляющая скорости шарика,
Yo - координата Y точки броска,
t - время.
Кроме времени, все остальные значения задаются в момент броска, а значит, вводятся пользователем. Время же меняется, а с ним - и координаты шарика.
Как вариант исходных данных - абсолютная скорость шарика в момент броска и угол броска. По формулам можно получить горизонтальную и вертикальную составляющие скорости:
Vx = V*cos(alpha)
Vy = V*sin(alpha)
где
V - абсолютная скорость шарика в момент броска,
alpha - угол броска (alpha=0 - горизонтально, alpha=pi/2 - вертикально)
Шарик должен лететь, пока его координата y не станет равной 0 или отрицательной. Из-за того, что предсказывать направление полёта шарика и время его падения я не хочу, сохраним координаты точек траектории в массив. После перевода в графический режим отмасштабируем наши данные (отступы по 50 точек от каждого из краёв).
Переменные и их типы определи самостоятельно ;)
Получаем фрагмент кода (в приложении)
Приложение:
Ответ отправил: Артём Шегеда (статус: 5-ый класс)
Ответ отправлен: 06.04.2006, 15:02