Как сделать лягушку в паскале
Pascal: Занятие № 4 часть II. Графика в Паскале
Графика в Паскале
Для работы с графикой в pascal abc используется модуль GraphABC. Для его подключения используется следующий код:
Система координат в Паскале соответствует экранной системе координат и выглядит следующим образом:
Управление цветом
Для того, чтобы использовать цвет, необходимо применить этот цвет к инструменту перо:
или использовать для заливки:
После чего можно использовать процедуры для рисования геометрических фигур.
clBlack – черный
clPurple – фиолетовый
clWhite – белый
clMaroon – темно-красный
clRed – красный
clNavy – темно-синий
clGreen – зеленый
clBrown – коричневый
clBlue – синий
clSkyBlue – голубой
clYellow – желтый
clCream – кремовый
clAqua – бирюзовый
clOlive – оливковый
clFuchsia – сиреневый
clTeal – сине-зеленый
clGray – темно-серый
clLime – ярко-зеленый
clMoneyGreen – цвет зеленых денег
clLtGray – светло-серый
clDkGray – темно-серый
clMedGray – серый
clSilver – серебряный
Точки, отрезки и ломаные
Для отображения точки в паскале используется процедура:
uses GraphABC; begin SetPixel(300,200,clred); end.
Для рисования линии используется:
uses GraphABC; begin SetPenColor(clgreen); line(100,50,500,250); end.
Для установки размеров графического окна используется процедура
Рисование фигур
uses GraphABC; begin Rectangle(50,50,200,200); end.
uses GraphABC; begin Rectangle(50,50,200,200); FloodFill(100,100,clBlue); end.
Line(x1,y1,x2,y2);
LineTo(x,y);
uses GraphABC; begin setpenwidth(20); setpencolor(clred); moveTo(300,100); lineTo(500,300); lineto(100,300); lineto(300,100); floodfill(300,200,clgreen); end.
uses GraphABC; begin Circle(500,200,100); FloodFill(500,200,clred); end.
uses GraphABC; Begin SetPenWidth(10); Arc(300,250,150,45,135); end.
Функция random для использования окраски
* раскрасить круги случайным цветом
Нарисовать штриховку на Паскале можно, используя процедуры рисования прямоугольника и линии:
Программа будет выглядеть следующим образом:
Анимация в Паскале
Анимация в программировании заключается в том, что сначала рисуется фигура цветным инструментом, затем с тем же координатами рисуется та же фигура белым цветом. После чего происходит сдвиг фигуры и действия повторяются.
uses GraphABC; var x:integer; begin x:=40; repeat SetPenColor(clWhite); Circle(x,100,10); <Рисуем белую окружность>SetPenColor(clBlack); Circle(x,100,10); <Рисуем черную окружность>x:=x+1 <Перемещаемся немного направо>until x>600; end.
Графика Pascal
В Pascal ABC для работы с графикой отвечает модуль GraphABC. Для его подключения применяется следующий код:
Система координат в Pascal соответствует экранной системе координат. Вот как она выглядит:
Как управлять цветом
Чтобы использовать цвет, нужно применять его инструменту перо:
Устанавливает цвет пера, который создает параметр color. | SetPenColor(color) |
Устанавливает цвет кисти, который задается параметром color. | setBrushColor(color) |
Для палитры RGB или для заливки. | SetPenColor(rgb(0-255, 0-255, 0-255)) |
Заливает область одного цвета, заданным color с точки (х, у). | FloodFill(x,y,color) |
Затем можно использовать процедуры для рисования различных геометрических фигур.
Основные процедуры (команды)
Номер цвета | Имя константы | Цвет |
0 | Black | Черный |
1 | Blue | Темно-синий |
2 | Green | Темно-зеленый |
3 | Cyan | Бирюзовый |
4 | Red | Красный |
5 | Magenta | Фиолетовый |
6 | Brown | Коричневый |
7 | LightGray | Светло-серый |
8 | DarkGray | Темно-серый |
9 | LightBlue | Синий |
10 | LightGreen | Светло — зеленый |
11 | LightCyan | Светло-бирюзовый |
12 | LightRed | Розовый |
13 | LightMagenta | Малиновый |
14 | Yellow | Желтый |
15 | White | Белый |
К примеру, цвет линий на экране можно задать следующим образом:
Установка цвета фона
Для того чтобы установить цвет фона всему экрану, применяется следующая процедура:
Внимание! Если она не вызвана, то экран будет черным.
Точки, отрезки и ломаные
В Pascal для отображения точки используется процедура:
SetPixel(x,y,color) — Закрашивает один пиксел с координатами (x,y) цветом color
Для рисования линии применяется:
Line(x1,y1,x2,y2) — рисует отрезок с началом (x1,y1) и концом в x2,y2
Для рисования ломаных линий применяются следующие процедуры: MoveTo (x1, y1) и LineTo (x2, y2).
Процедуры работают вместе: MoveTo передвигает курсор в необходимую точку, а процедура LineTo рисует линию с данной точки до точки, определенной параметром этой процедуры.
usesGraphABC;
begin
…
SetPenColor(clblue);
MoveTo(x1, y1);
LineTo(x2, y2);
LineTo(x3, y3);
LineTo(x4, y4);
LineTo(x5, y5);
end.
Задание. Нарисовать квадрат и равносторонний треугольник с помощью SetPenColor(), LineTo (x2, y2) и MoveTo (x1, y1).
Для установки размеров графического окна применяется процедура
Рисование фигур
Прямоугольник в Pascal рисуется:
Rectangle(x1,y1,x2,y2) — рисует прямоугольник с координатами противоположных вершин (x1,y1) и (x2,y2).
Фигуры с заливкой:
usesGraphABC;
begin
Rectangle(50,50,200,200);
FloodFill(100,100,clBlue);
end.
Треугольник рисуется процедурами:
usesGraphABC;
begin
setpenwidth(20);
setpencolor(clred);
moveTo(300,100);
lineTo(500,300);
lineto(100,300);
lineto(300,100);
floodfill(300,200,clgreen);
end.
С помощью данной процедуры можно нарисовать окружность:
Circle(x,y,r) — рисует окружность с центром в точке (x,y) и радиусом r.
Дуга окружности
Arc(x,y,r,a1,a2) — позволяет нарисовать дугу окружности с центром в точке (x,y) и радиусом r, заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 – вещественные, задаются в градусах и отсчитываются против часовой стрелки).
Задача 1: «Лягушка»
Задача 2: «Корона»
Функция random для использования окраски
SetPenColor (rgb(random(256), random(256), random(256))); — выбирает рандомное число из 256-цветной палитры для цветов: красного, зеленого и синего.
Задача 4: «Круги на воде».
Условие: Нарисуйте несколько десятков концентрических окружностей (окружностей разного радиуса с общим центром).
Задача 5: Воспроизвести изображение с помощью приложения:
Штриховка
Нарисовать штриховку на Pascal можно, применяя процедуры рисования прямоугольника и линии:
В результате получится следующий код:
usesgraphABC;
var i, x1, x2, y1, y2, N:integer;
h, x:real;
begin
x1 :=100; y1 :=100;
x2 :=300; y2 :=200;
N :=10;
Rectangle(x1, y1, x2, y2);
h :=(x2 — x1)/(N +1);
x := x1 + h;
for i:=1to N dobegin
Line(round(x), y1,round(x), y2);
x := x + h;
end;
end.
Анимация в Паскале
Анимация в Pascalсостоит в том, что первым рисуется фигура цветным инструментом, после чего с такими же координатами рисуется та же фигура белым цветом. Затем происходит сдвиг фигуры. И так действия повторяются.
Воспроизвести движение круга по горизонтали. Пример:
Задача 6: Создать анимацию движения квадрата по заданной траектории:
А как у вас обстоят дела с графикой в Pascal? Поделитесь своим опытом, оставив комментарий.