Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Turbo Pascal / Методические указание / Синтез графических образов простыми средствами.DOC
Скачиваний:
17
Добавлен:
15.06.2014
Размер:
205.82 Кб
Скачать

3 Практическое задание по отображению сложного движения

3.1 Колесо с 8 спицами (рисунок 5) катится равномерно без проскальзывания по наклонной плоскости, при достижении горизонтальной плоскости оно равномерно замедляется с остановкой у правого края.

Рисунок 5

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

Рисунок 6

3.3 Ведомая шестерня вращается по внутренней поверхности корпуса под действием вращения ведущей шестерни ( рисунок 7). Диаметры шестерен одинаковы, угловая скорость центра ведомой шестерни в 3 раза меньше скорости ее собственного вращения.

Рисунок 7

4 Отслеживание положения и ориентации объекта

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

Опишем функцию, возвращающую угол ориентации вектора, построенного на двух узловых точках объекта

Y

FUNCTION UGOL(x1,y1, x2,y2: real):real; 2

{ угол между вектором от точки x1,y1 dy

к точке x2,y2 и осью абсцисс}

var u, d_x, d_y: real; 1

begin d_x:=x2-x1; dx X

d_y:=y2-y1; Рисунок 8

if d_x<>0 then u:=arctan(d_y/d_x)

else u:=0;

if d_x< 0 then u:=u+pi;

UGOL:=u end;

Особенностью этой функции является то, что арктангенс отношения разности ординат точек к разности абсцисс корректно работает лишь приd_x>0, т.е. для углов от -/2 до/2. Приd_x<0 получаемое по арктангенсу значение угла необходимо смещать на пол-оборота.

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

5 Практическое задание по моделированию движения

с отслеживанием ориентации объекта

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

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

5.3 Брусок соскальзывает от вертикального до горизонтального положения, касаясь двумя своими вершинами сторон прямого угла

( рисунок 9). Точка касания вертикали движется равноускоренно, при достижении горизонтали движение прекращается.

Рисунок 9

5.4 Полая рейка вращается на оси с постоянной угловой скоростью

( рисунок 10). Затем центр рейки начинает равномерно смещаться от оси вращения ( соскальзывает), что сопровождается снижением угловой скорости вращения на 50% к концу

соскальзывания.

Рисунок 10