Реализовать движение графического рисунка - Pascal ABC
Формулировка задачи:
Напишите пожалуйста графический рисунок, необходимо, чтобы фигура двигалась. Фигура компьютерная мышка
Работу нужно сдать 25.03.16
Решение задачи: «Реализовать движение графического рисунка»
textual
Листинг программы
uses graphABC; var x,y:integer; procedure mouse(x,y:integer); begin pen.Color:=clBlack; arc(x,y-50,50,0,180); arc(x,y+50,50,180,360); line(x-50,y-50,x-50,y+50); line(x+50,y-50,x+50,y+50); floodfill(x,y,clBlack); pen.Color:=clSilver; arc(x,y-50,50,45,135); line(x-25,y,x+25,y); line(x-25,y,x-25,y-92); line(x+25,y,x+25,y-92); floodfill(x-15,y-15,clSilver); pen.Color:=clBlack; line(x-10,y-30,x-10,y-80); line(x+10,y-30,x+10,y-80); arc(x,y-35,10,180,360); arc(x,y-80,10,0,180); floodfill(x,y-50,clBlack); end; procedure KeyDown(key:integer); begin case key of Vk_Up:if y-100>0 then y:=y-5; Vk_Down:if y+100<windowheight then y:=y+5; Vk_Left:if x-50>0 then x:=x-5; Vk_Right:if x+50<windowwidth then x:=x+5; end; end; begin x:=windowwidth div 2; y:=windowheight div 2; mouse(x,y); textout(10,10,'Управление стрелками'); lockdrawing; repeat clearwindow; onkeydown:=KeyDown; textout(10,10,'Управление стрелками'); mouse(x,y); redraw; until 1>2; end.
Объяснение кода листинга программы
- В начале кода подключается библиотека graphABC, которая предоставляет функции для работы с графикой.
- Далее объявляются две переменные: x и y, которые представляют координаты точки на графике.
- Затем определяется процедура mouse, которая реализует движение графического рисунка. Внутри этой процедуры используются функции arc, line и floodfill для создания и изменения формы графического элемента.
- Далее определена процедура KeyDown, которая обрабатывает нажатие клавиш на клавиатуре. Внутри этой процедуры используется оператор case для определения действия, которое нужно выполнить при нажатии определенной клавиши. В данном случае, при нажатии клавиши Vk_Up, значение переменной y уменьшается на 5, при нажатии клавиши Vk_Down, значение переменной y увеличивается на 5, при нажатии клавиши Vk_Left, значение переменной x уменьшается на 5, и при нажатии клавиши Vk_Right, значение переменной x увеличивается на 5.
- Затем начинается основной цикл программы, который включает в себя следующие действия:
- x и y устанавливаются в середину окна (x = windowwidth / 2, y = windowheight / 2).
- Вызывается процедура mouse, чтобы нарисовать графический элемент.
- Выводится текст
Управление стрелками
. - Включена блокировка рисования.
- Начиная с цикла repeat...until, происходит очистка окна, вызывается процедура KeyDown, рисуется графический элемент, выводится текст
Управление стрелками
и включается возможность рисования. - Цикл повторяется до тех пор, пока условие 1 > 2 не будет выполнено.