Книжка Хабы (970988), страница 14
Текст из файла (страница 14)
readln(xc,yc);
writeln('Введите угол поворота');
readln(ug);
end;
'E': goto 1;
else;
end;
SetGraphMode(GetGraphMode); {установить графический режим}
SetBkColor(fon);
SetColor(col);
rab:=nach;
kx1:=1-kx;
ky1:=1-ky;
ur:=ug*pi/180;
sur:=sin(ur);
cur:=cos(ur);
rx:=xa/ya;
ry:=ya/xa;
while rab<>nil do
begin
x:=rab^.x;
y:=rab^.y;
case pr of
'I': begin
x1:=x;
y1:=y;
end;
'P': begin
x1:=x+dx;
y1:=y+dy;
end;
'M': begin
x1:=round(x*kx+xm*kx1);
y1:=round(y*ky+ym*ky1);
end;
'W': begin
x1:=round(xc+(x-xc)*cur+(y-yc)*sur*ry);
y1:=round(yc+(y-yc)*cur-(x-xc)*sur*rx);
end;
else ;
end;
if nach=rab then
begin
xnc:=x1;
ync:=y1;
MoveTo(xnc,ync); {смещает текущий указатель к точке}
end
else LineTo(x1,y1); {рисует линию от текущего указателя до точки}
rab:=rab^.praw;
end;
LineTo(xnc,ync);
readln;
until (pr='E');
1: CloseGraph;
end.
3.Задачи, для самостоятельного решения
Задача 1.
1. Изобразить квадрат со стороной а, перемещающийся по горизонтали на расстоянии 100 точек от начала координат.
2. Изобразить удаляющийся квадрат, определенных размеров, размещенный в центре экрана.
Задача 2.
1. Изобразить прямоугольник с основанием L и высотой H, перемещающийся по диагонали экрана.
2. Изобразить удаляющийся прямоугольник, определенных размеров, первоначально размещенный в центре экрана.
Задача 3.
1. Изобразить окружность радиуса r, перемещающуюся по синусоиде с амплитудой не более 100.
2. Разработать программу построения круговой диаграммы по заданным значениям не более 12, которые должны выводиться рядом с соответствующим сектором диаграммы.
Задача 4.
1. Изобразить на экране гармонические колебания шара, подвешенного на нити, т.е. по полуокружности радиуса R.
2. Разработать программу, которая демонстрирует на экране движение прямоугольника: прямоугольник улетает от нас к некоторой точке горизонта, одновременно вращаясь вокруг своей оси.
Задача 5.
1. Построить правильный пятиугольник, вписанный в окружность с координатами центра x0,y0 и радиусом r. Через 10 секунд повернуть его на: / 4.
2. Разработать программу, которая демонстрирует на экране движение шара: шар улетает от нас из центра экрана к некоторой точке горизонта.
Задача 6.
1. Окружность радиуса r перемещается на экране справа налево, по достижении ею середины экрана слева направо начинает перемещаться по синусоиде.
2. Разработать программу, которая демонстрирует на экране движение треугольника: треугольник улетает от нас к некоторой точке горизонта, одновременно вращаясь вокруг своей оси.
Задача 7.
-
Изобразить перемещение окружности по спирали из центра экрана по n виткам и внешнему радиусу R. Начальное направление спирали образует с осью OХ угол:
x=R / cos t
y=R / sin t, шаг 2.
2. Разработать программу, которая демонстрирует на экране движение квадрата: квадрат приближается к нам из некоторой точке горизонта, одновременно вращаясь вокруг оси приближения.
Задача 8.
1. Изобразить на экране часы с часовой и минутной стрелками, вращающимися в одном направлении.
2. Разработать программу, которая демонстрирует на экране движение квадрата по строфоиде, затирая за собой кривую. Квадрат при этом вращается по часовой стрелке.
Задача 9.
-
Проиллюстрировать законы Кеплера, согласно которым планеты движутся по эллипсам, в одном из фокусов которых находится солнце. Параметрические уравнения для траектории движения по эллипсу
x=R1 / coos t
y=R2 / sin t, в интервале [0, 2].
2. Разработать программу, которая демонстрирует на экране движение квадрата по функции f(x) = sin (2x / (x+2)), затирая за собой кривую. Квадрат при этом вращается по часовой стрелке.
Задача 10.
1. Начертить узор, образованный двадцатью вложенными квадратами. Стороны первого параллельны осям координат и равны 60. Вершины каждого последующего квадрата - это точки на сторонах предыдущего, делящие эти стороны в отношении А=0,08.
2. Разработать программу, которая демонстрирует на экране движение шара по функции f(x) = cos (2x^2 / (x+2)), затирая за собой кривую.
Задача 11.
1. Изобразить треугольник, вращающийся вокруг точки пересечения его высот.
2.Разработать программу, которая демонстрирует на экране движение квадрата: квадрат удаляется из некоторой точки к горизонту, одновременно вращаясь вокруг оси удаления.
Задача 12.
1. Изобразить на экране движение бильярдного шара без луз.
2. Изобразить на экране масштабирование квадрата с интервалом 2 в диапазоне от 10 до 30
Задача 13.
1.Построить модель атомного ядра, бомбардируемого -частицами. В центре экрана - ядро с вращающимся вокруг него тремя электронами. Параметрические уравнения для одного электрона таковы:
X = r / coos t
У = r / sin t, t принадлежит [0, 2].
Из одного из углов экрана появляется: -частица в направлении ядра, для которой координата по оси Y моделируется датчиком случайных чисел. В случае столкновения с ядром или с одним из электронов происходит взрыв.
2.Разработать программу, которая демонстрирует на экране движение квадрата: квадрат удаляется из некоторой точки к горизонту, одновременно вращаясь вокруг оси удаления.
Лабораторная работа №12
Рубежный контроль №2
Цель работы – оценить уровень овладение практическими приемами разработки программ посредством иерархически связанных классов, построения графиков функций, работы в графическом режиме, создании объектов, движущихся по заданной кривой, управлении их режимами отображения.
-
Задачи, для самостоятельного решения
Задача 1. Составить модуль с описанием типа объекта, представляющего график функции f(x) = А * sin(x) для значений аргумента 0<=X<=B, в прямоугольной области экрана, задаваемой координатами левого верхнего (X0,Y0) и правого нижнего (X1,Y1) углов. Тип объекта должен иметь методы инициализации полей графика (A. ОBJ X0,Y0,X1,Y1), вывода изображения, стирания изображения (на черном фоне). График должен заполнять всю область и иметь оси координат с оцифровкой на концах.
Составить основную программу, использующую модуль, с выбором при нажатии клавиш F1,F3,F5 [коды (0, 59), (0, 61), (0, 63) соответственно] следующих вариантов работ:
-
Вывод графика с параметрами А=1,5; В=12,56; Х0=Y0=20; X1=Y1=120 с предварительным стиранием старого изображения.
-
Вывод графика с параметрами А=3,5; В=6,28; XO=Y0=220; X1=Y1=320 с предварительным стиранием старого изображения.
-
Выход из программы.
Задача 2. Составить модуль с описанием типа объекта, представляющего треугольник с координатами вершин в массиве Т, с контуром цвета С, с заполнением цвета Q. Тип объекта должен иметь методы инициализации полей треугольника (Т, С, Q), вывода изображения, стирания изображения (на черном фоне) и плавного движения относительно первой вершины против часовой стрелки до поворота на 80град. Треугольник должен сохранять свою форму при повороте в разных графических режимах.
Составить основную программу, использующую модуль, с выбором при нажатии клавиш Alt+1, Alt+3, Alt+5 [ (0,120), (0,122), (0, 124) соответственно] следующих вариантов работ:
-
Вывод белого треугольника с синим контуром и координатами вершин (320,150), (390,200), (250,200).
-
Вращение желтого треугольника с красным контуром и начальными координатами вершин (320,150), (390,200), (250,200).
-
Выход из программы.
Задача 3. Составить модуль с описанием типа объекта, представляющего четырехугольник с координатами вершин в массиве М, с контуром цвета С, с заполнением цвета Q. Тип объекта должен иметь методы инициализации полей четырехугольника (M, С, Q), вывода изображения, стирания изображения (на черном фоне) и плавного движения относительно центра тяжести против часовой стрелки до поворота на 45град. Четырехугольник должен сохранять свою форму при повороте в разных графических режимах.
Составить основную программу, использующую модуль, с выбором при нажатии клавиш Alt+2, Alt+4, Alt+6 [ (0,121), (0,123), (0, 125) соответственно] следующих вариантов работ:
-
Вывод красного четырехугольника с синим контуром и координатами вершин (320,150), (390,200).
-
Вращение желтого треугольника с красным контуром и начальными координатами вершин (320,150), (390,200).
-
Выход из программы.
Задача 4. Составить модуль с описанием типа объекта, представляющего окружность с координатами центра в массиве Т, с контуром цвета С, с заполнением цвета Q. Тип объекта должен иметь методы инициализации полей окружности (Т, С, Q), вывода изображения, стирания изображения (на черном фоне) и плавного перемещения относительно горизонтальной линии экрана. Окружность должна удаляться от своего первоначального положения, изменяя поочередно случайным образом цвет закраски.
Составить основную программу, использующую модуль, с выбором при нажатии клавиш Alt+1, Alt+3, Alt+5 [ (0,120), (0,122), (0, 124) соответственно] следующих вариантов работ:
-
Вывод белой окружности с красным контуром и координатами центра (320,240).
-
Удаление желтой окружности с синим контуром и начальными координатами (320,240).
-
Выход из программы.
Задача 5. Составить модуль с описанием типа объекта, представляющего график f(x) = А * sin2(x)? для значений аргумента 0<=X<=B, в прямоугольной области экрана, задаваемой координатами левого верхнего (X0,Y0) и правого нижнего (X1,Y1) углов. Тип объекта должен иметь методы инициализации полей графика (A. ОBJ X0,Y0,X1,Y1), вывода изображения, стирания изображения (на черном фоне). График должен заполнять всю область и иметь оси координат с оцифровкой на концах.
Составить основную программу, использующую модуль, с выбором при нажатии клавиш F1,F3,F5 [коды (0, 59), (0, 61), (0, 63) соответственно] следующих вариантов работ:
-
Вывод графика с параметрами А=1,5; В=12,56; Х0=Y0=20; X1=Y1=120 с предварительным стиранием старого изображения.
-
Вывод графика с параметрами А=3,5; В=6,28; XO=Y0=220; X1=Y1=320 с предварительным стиранием старого изображения.
Выход из программы.
Задача 6. Составить модуль с описанием типа объекта, представляющего треугольник с координатами вершин в массиве Т, с контуром цвета С, с заполнением цвета Q. Тип объекта должен иметь методы инициализации полей треугольника (Т, С, Q), вывода изображения, стирания изображения (на черном фоне) и плавного движения относительно первой вершины против часовой стрелки до поворота на 45град. Треугольник должен сохранять свою форму при повороте в разных графических режимах.
Составить основную программу, использующую модуль, с выбором при нажатии клавиш Alt+1, Alt+3, Alt+5 [ (0,120), (0,122), (0, 124) соответственно] следующих вариантов работ:
-
Вывод белого треугольника с синим контуром и координатами вершин (320,150), (390,200), (250,200).
-
Вращение желтого треугольника с красным контуром и начальными координатами вершин (320,150), (390,200), (250,200).
-
Выход из программы.
Задача 7. Составить модуль с описанием типа объекта, представляющего четырехугольник с координатами вершин в массиве М, с контуром цвета С, с заполнением цвета Q. Тип объекта должен иметь методы инициализации полей четырехугольника (М, С, Q), вывода изображения, стирания изображения (на черном фоне) и плавного движения относительно центра тяжести против часовой стрелки до поворота на 125град. Четырехугольник должен сохранять свою форму при повороте в разных графических режимах.
Составить основную программу, использующую модуль, с выбором при нажатии клавиш Alt+2, Alt+4, Alt+6 [ (0,121), (0,123), (0, 125) соответственно] следующих вариантов работ:
-
Вывод красного четырехугольника с синим контуром и координатами вершин (320,150), (390,200).
-
Вращение желтого треугольника с красным контуром и начальными координатами вершин (320,150), (390,200).
-
Выход из программы.
Задача 8. Составить модуль с описанием типа объекта, представляющего окружность с координатами центра в массиве Т, с контуром цвета С, с заполнением цвета Q. Тип объекта должен иметь методы инициализации полей окружности (Т, С, Q), вывода изображения, стирания изображения (на черном фоне) и плавного перемещения относительно горизонтальной линии экрана. Окружность должна удаляться от своего первоначального положения, изменяя поочередно случайным образом цвет закраски.
Составить основную программу, использующую модуль, с выбором при нажатии клавиш Alt+1, Alt+3, Alt+5 [ (0,120), (0,122), (0, 124) соответственно] следующих вариантов работ:
-
Вывод белой окружности с красным контуром и координатами центра (320,240).
-
Удаление желтой окружности с синим контуром и начальными координатами (320,240).
-
Выход из программы.
Задача 9. Составить модуль с описанием типа объекта, представляющего график функции f(x) = А * sin 2(x)? для значений аргумента 0<=X<=B, в прямоугольной области экрана, задаваемой координатами левого верхнего (X0,Y0) и правого нижнего (X1,Y1) углов. Тип объекта должен иметь методы инициализации полей графика (A. ОBJ X0,Y0,X1,Y1), вывода изображения, стирания изображения (на черном фоне). График должен заполнять всю область и иметь оси координат с оцифровкой на концах.