Графика Pascal

В Pascal ABC для работы с графикой отвечает модуль GraphABC. Для его подключения применяется следующий код:

usesGraphABC;
begin

end.

Система координат в Pascal соответствует экранной системе координат. Вот как она выглядит:

Графика Pascal

Как управлять цветом

Чтобы использовать цвет, нужно применять его инструменту перо:

Устанавливает цвет пера, который создает параметр color.SetPenColor(color)
Устанавливает цвет кисти, который задается параметром color.setBrushColor(color)
Для палитры RGB или для заливки.SetPenColor(rgb(0-255, 0-255, 0-255))
Заливает область одного цвета, заданным color с точки (х, у).FloodFill(x,y,color)

Затем можно использовать процедуры для рисования различных геометрических фигур.

Основные процедуры (команды)

Номер цветаИмя константыЦвет
0BlackЧерный
1BlueТемно-синий
2GreenТемно-зеленый
3CyanБирюзовый
4RedКрасный
5MagentaФиолетовый
6BrownКоричневый
7LightGrayСветло-серый
8DarkGrayТемно-серый
9LightBlueСиний
10LightGreenСветло — зеленый
11LightCyanСветло-бирюзовый
12LightRedРозовый
13LightMagentaМалиновый
14YellowЖелтый
15WhiteБелый

К примеру, цвет линий на экране можно задать следующим образом:

1 SetColor(14); // Будет желтый цвет

Установка цвета фона

Для того чтобы установить цвет фона всему экрану, применяется следующая процедура:

1 SetBkColor(14);

Внимание! Если она не вызвана, то экран будет черным.

Точки, отрезки и ломаные

В Pascal для отображения точки используется процедура:

SetPixel(x,y,color) — Закрашивает один пиксел с координатами (x,y) цветом color

Графика Pascal

usesGraphABC;
begin
SetPixel(300,200,clred);
end.

Для рисования линии применяется:

Line(x1,y1,x2,y2) — рисует отрезок с началом (x1,y1) и концом в x2,y2

Графика Pascal

usesGraphABC;
begin
SetPenColor(clgreen);
line(100,50,500,250);
end.

Для рисования ломаных линий применяются следующие процедуры: MoveTo (x1, y1) и LineTo (x2, y2).
Процедуры работают вместе: MoveTo передвигает курсор в необходимую точку, а процедура LineTo рисует линию с данной точки до точки, определенной параметром этой процедуры.

Графика Pascal

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).

Для установки размеров графического окна применяется процедура

SetWindowSize(ширина, высота)

или, например:

SetWindowWidth(600);
SetWindowHeight(400);

Рисование фигур

Прямоугольник в Pascal рисуется:

Rectangle(x1,y1,x2,y2) — рисует прямоугольник с координатами противоположных вершин (x1,y1) и (x2,y2).

Графика Pascal

usesGraphABC;
begin
Rectangle(50,50,200,200);
end.

Фигуры с заливкой:

Графика Pascal

usesGraphABC;
begin
Rectangle(50,50,200,200);
FloodFill(100,100,clBlue);
end.

Треугольник рисуется процедурами:

Line(x1,y1,x2,y2);
LineTo(x,y);

Графика Pascal

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.

Графика Pascal

usesGraphABC;
begin
Circle(500,200,100);
FloodFill(500,200,clred);
end.

Дуга окружности

Arc(x,y,r,a1,a2) — позволяет нарисовать дугу окружности с центром в точке (x,y) и радиусом r, заключенной между двумя лучами, образующими углы a1 и a2 с осью OX (a1 и a2 – вещественные, задаются в градусах и отсчитываются против часовой стрелки).

Графика Pascal

usesGraphABC;
Begin
SetPenWidth(10);
Arc(300,250,150,45,135);
end.

Задача 1: «Лягушка»

Графика Pascal

Задача 2: «Корона»

Графика Pascal

Функция random для использования окраски

SetPenColor (rgb(random(256), random(256), random(256))); — выбирает рандомное число из 256-цветной палитры для цветов: красного, зеленого и синего.

Задача 3: Нарисовать горизонтальный ряд окружностей радиусом 10 на расстоянии 100 от верхнего края экрана и с такими горизонтальными координатами 50, 80, 110, 140, … , 290.
* круги должны быть раскрашены случайным цветом.

Задача 4: «Круги на воде».

Условие: Нарисуйте несколько десятков концентрических окружностей (окружностей разного радиуса с общим центром).

Задача 5: Воспроизвести изображение с помощью приложения:

Графика Pascal

Штриховка

Нарисовать штриховку на Pascal можно, применяя процедуры рисования прямоугольника и линии:

Графика Pascal

В результате получится следующий код:

Графика 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состоит в том, что первым рисуется фигура цветным инструментом, после чего с такими же координатами рисуется та же фигура белым цветом. Затем происходит сдвиг фигуры. И так действия повторяются.

Воспроизвести движение круга по горизонтали. Пример:

usesGraphABC;
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.

Задача 6: Создать анимацию движения квадрата по заданной траектории:

Графика Pascal

А как у вас обстоят дела с графикой в Pascal? Поделитесь своим опытом, оставив комментарий.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *