Анимация: вращение рисунка - Pascal ABC (13624)

Узнай цену своей работы

Формулировка задачи:

Помогите сделать вращение треугольника

Решение задачи: «Анимация: вращение рисунка»

textual
Листинг программы
uses graphABC,crt;
procedure Vrash(a:real;var x,y:integer;x0,y0,d:integer);
begin
x:=x0+round(d*cos(a));
y:=y0-round(d*sin(a));
end;
 
var ch:char;
    x0,y0,d,ax,ay,bx,by:integer;
    aa,ab:real;
begin
hidecursor;
d:=150;
x0:=windowwidth div 2;
y0:=windowheight div 2;
aa:=-pi/3;
ab:=4*pi/3;
lockdrawing;
repeat
clearWindow;
Vrash(aa,ax,ay,x0,y0,d);
Vrash(ab,bx,by,x0,y0,d);
line(x0,y0,ax,ay);
line(ax,ay,bx,by);
line(x0,y0,bx,by);
delay(100);
aa:=aa+0.1;
ab:=ab+0.1;
redraw;
until keypressed;
readln
end.

Объяснение кода листинга программы

  1. В начале кода подключаются необходимые библиотеки graphABC и crt.
  2. Затем определяется процедура Vrash, которая принимает на вход параметр a типа real, переменные x и y типа integer, а также x0, y0 и d типа integer. Внутри процедуры значения переменных x и y вычисляются по формулам, основанным на тригонометрии.
  3. Далее определены переменные ch, x0, y0, d, ax, ay, bx, by типа integer. Значения переменных aa и ab типа real инициализируются значениями -π/3 и 4*π/3 соответственно.
  4. Затем включается режим скрытия курсора hidecursor.
  5. Вычисляется значение переменной d типа integer, равное 150.
  6. Значения переменных x0 и y0 типа integer вычисляются как половина ширины и высоты окна соответственно.
  7. Значения переменных aa и ab типа real инициализируются значениями -π/3 и 4*π/3 соответственно.
  8. В цикле повторяется следующий набор действий:
    • очищается окно clearWindow.
    • вызывается процедура Vrash с аргументами aa, ax, ay, x0, y0, d.
    • вызывается процедура Vrash с аргументами ab, bx, by, x0, y0, d.
    • рисуются линии line с помощью координат x0, y0, ax,ay, bx,by, x0,y0,bx,by.
    • задерживается выполнение программы delay на 100 мс.
    • значения переменных aa и ab увеличиваются на 0.1.
    • выполняется перерисовка окна redraw.
    • пока не нажата клавиша keypressed.
  9. Конец программы.

Оцени полезность:

15   голосов , оценка 4.333 из 5
Похожие ответы