Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
IF_2.DOC
Скачиваний:
7
Добавлен:
19.12.2018
Размер:
2.22 Mб
Скачать

Var alfa: real;

BEGIN n:=4; { число вершин фигуры }

m:=12; { число зеркальных отображений фигуры }

xc:=5; yc:=5; {"центр" фигуры}

xa[1]:=5; ya[1]:=5; { координаты вершин фигуры на чертеже }

xa[2]:=70; ya[2]:=20;

xa[3]:=15; ya[3]:=55; 0 X

xa[4]:=20; ya[4]:=20;

Gd:= Detect;

InitGraph(Gd, Gm, 'C:\tp7\bgi'); Y

124

xc1:=GetMaxX div 2; yc1:=GetMaxY div 2; { центр экрана }

I_R; NEW_XY; { исходные координаты фигуры }

SetWriteMode(1);

{-------------- Вращение вокруг смещающегося центра -----------}

for l:=1 to 150 do begin

PICTURE;

xc:=xc+3; yc:=yc+2; putpixel(xc, yc, 12); { смещение центра xc, yc }

MOVE(3,2); { перенос фигуры соответственно смещению центра }

ROT_XY(xc, yc, -0.3); { поворот на 0.3 рад относительно xc, yc }

delay(2); PICTURE; NEW_XY;

end;

readln; ClearDevice;

SetWriteMode(0);

{--------- Зеркальные отображения фигуры -------------}

I_r; picture;

for i:=1 to n do begin

xa[i]:=x[i]; ya[i]:=y[i] end; {задание исходных координат фигуры}

for l:=1 to m do begin alfa:=2*Pi*(l-1)/m; {угол наклона зеркала к оси X}

{ Line(xc1-round(xc1*cos(alfa)), yc1-round(xc1*sin(alfa)),

xc1+round(xc1*cos(alfa)), yc1+round(xc1*sin(alfa)));{линия зеркала}

MOVE(-xc1,-yc1); MIRROR(alfa); MOVE(xc1,yc1); { преобразования}

NEW_XY; PICTURE; { расчет и рисование новых координат фигуры}

end;

readln;

CloseGraph;

END.

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

Практическое задание N 2. 9

1. С использованием процедур зеркального отображения фигуры относительно оси, проходящей под углом “А” через начало координат и параллельного переноса, составить программу “ калейдоскоп” - последовательное отображение фигуры относительно “n” осей, проходящих через центр экрана.

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

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

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

125

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]