
- •210100 "Управление и информатика в технических системах" и
- •1. Построение графиков функций и траекторий движения
- •1.3. Построение траекторий движения
- •2. Приемы создания динамичных графических образов.
- •2.1. Перерисовывание объекта.
- •2.2. Плавная модификация контурного изображения.
- •2.3. Мультипликация с запоминанием части экрана
- •2.4. Мультипликация с чередованием видеостраниц
- •2.5. Управление движением образа.
- •210100 "Управление и информатика в технических системах" и 210300 "Роботы и робототехнические системы"
1.3. Построение траекторий движения
При расчете физических процессов составляется математическая модель - система уравнений, описывающая зависимости между физическими величинами при некоторых упрощающих допущениях. Физические процессы описываются обычно системой дифференциальных уравнений, для решения которой применяют различные численные методы (модели). Широко используется метод конечных разностей, в котором бесконечно малые приращения переменных заменяют малыми (конечными) приращениями.
Рассмотрим задачу определения траектории точки, движущейся в некоторой плоскости под действием различных сил. Например, необходимо вычислить траекторию движения снаряда с учетом сопротивления воздуха или ракеты с учетом изменения ее массы, движущихся в поле тяготения Земли.
Координаты точки X( t), Y( t) в некоторый момент времени t можно определить, зная ее координаты X( t-dt), Y( t-dt) в предыдущий момент времени t-dt и изменение координат dX,dY:
X( t) = X( t-dt) + dX( t),
Y( t) = Y( t-dt) + dY( t).
Если временной интервал выбрать достаточно малым, то можно полагать, что скорость точки на этом интервале не изменяется и приращения координат определяются по формулам:
dX( t) = Vx( t)*dt,
dY( t) = Vy( t)*dt.
Здесь Vx(t), Vy(t) - проекции скорости на оси координат.
Составляющие скорости Vx(t) и Vy(t) можно вычислить по формулам:
Vx( t) = Vx( t-dt) + Ax( t) *dt,
Vy( t) = Vy( t-dt) + Ay( t) *dt.
Здесь Ax( t), Ay( t) - проекции ускорения на оси координат.
Ускорение определяется силами, действующими на точку - оно равно равнодействующей силе, деленной на массу точки. Силы могут зависеть от координат и скорости точки, а также от времени. Например, ускорение ракеты в поле тяготения планеты обратно пропорционально квадрату расстояния до центра планеты. При включении двигателя ракеты ускорение зависит от времени (программы работы двигателя). При движении в плотных слоях атмосферы на ракету действуют силы сопротивления воздуха, зависящие от скорости движения.
Алгоритм расчета траектории движения точки:
1). Определяем силы, действующие на точку, и находим проекции ускорения на оси координат. В общем случае ускорение точки зависит от многих факторов и в момент времени t задается как функция от скорости, координат и времени :
Ax:= Fx(Vx, Vy, X, Y, t), Ay:= Fy(Vx, Vy, X, Y, t),
где Vx,Vy, Ax,Ay - проекции скорости и ускорения.
2). Задаем начальное положение точки - координаты X[1], Y[1] и начальные скорость и ускорение в виде проекций на оси координат:
X[1]:= X0; Y[1]:= Y0; Vx[1]:= V*cos( fi); Vy[1]:= V*sin( fi);
Ax[1]:= Fx( Vx[1], Vy[1], X[1], Y[1], t[1] );
Ay[1]:= Fy( Vx[1], Vy[1], X[1], Y[1], t[1] );
где V - начальная скорость, fi - угол наклона вектора скорости к оси Х.
3). Задаем временной шаг dt и разбиваем весь временной интервал на N участков. При равномерной разбивке приращение времени определяется по формуле:
dt:= (t[N]-t[1]) /(N-1); где t[N]-t[1] - время движения точки.
Выбор величины dt определяется необходимой точностью расчета, возможностями вычислительной техники, и может уточняться при решении задачи.
4). Вычисляем массивы скоростей, ускорений и координат точки:
For i:= 2 to N do begin
Vx[ i]:=Vx[i-1] + Ax[i-1] *dt;
Vy[ i]:=Vy[i-1] + Ay[i-1] *dt;
X[ i]:= X[i-1] + 0.5*(Vx[i-1] + Vx[ i] ) *dt;
Y[ i]:= Y[i-1] + 0.5*(Vy[i-1] + Vy[ i] ) *dt;
Ax[ i]:= Fx( Vx[ i], Vy[ i], X[ i], Y[ i], t[ i] );
Ay[ i]:= Fy( Vx[ i], Vy[ i], X[ i], Y[ i], t[ i] );
{ уточнение скорости точки в расчетном месте }
VX[ i]:= VX[i-1] + 0.5*(Ax[i-1] + Ax[ i]) *dt;
VY[ i]:= VY[i-1] + 0.5*(Ay[i-1] + Ay[ i]) *dt;
end;
Для уменьшения погрешностей расчетной схемы скорость и ускорение на участке интерполируются средними значениями.
5). Строим траекторию движения по найденным наборам координат X[i], Y[i], определив предварительно расчетную область и область рисования траектории на экране.
Перечень тем курсового проектирования по разделу № 1.
Создать демонстрационную программу:
1. Влияние параметров a, b, c, d на вид функции Y=aX3+bX2+cX+d.
2. Тригонометрические функции и их производные.
3. Степенная функция Y=XA и ее свойства при различных A.
4. Показательная (Y=aX ) и логарифмическая (Y=logAX ) функции.
5. Графики функций в полярных координатах.
6. Графики функций в параметрической форме.
7. Построение касательных и нормалей к кривой.
8. Алгебраические уравнения второго порядка.
9. Циклоида: характеристики кривой и ее свойства.
10. Розы - периодические функции в полярных координатах.
11. Спирали: классические кривые, заданные в полярных координатах.
12. Гиперболические функции (Sh, Ch, Th, Cth) и их свойства.
13. Функции ArcSin, ArcCos, ArcTg и области их определения
14. Графическое отображение разложения функции в ряд Фурье.
15. Траектории движения тел в поле тяготения планеты.
16. Полет снаряда с учетом сопротивления воздуха.
17. Траектория баллистической ракеты с учетом уменьшения ее массы.
18. Траектории заряженной частицы в электромагнитном поле.
19. Затухающие колебания.
20. Вынужденные колебания. Резонанс.