Графические возможности Паскаль
Для использования графических возможностей ПаскальАВС служит модуль GraphABC. Чтобы его использовать, нужно его подключить следующим образом:
program xxx;
uses graphabc;
Обычно мы будем подключать его вместе с модулем crt, т. е. таким образом:
program xxx;
uses graphabc, crt;
При использовании этого модуля у нас есть окно, в котором можно рисовать, стоить графики и пр.
|
|

Основные действия:
1)
|
|

MoveTo(x, y); - передвигает невидимое перо к точке с координатами (x, y); Т. е. с этой точки с координатами x, y начнется рисование.
![]() |
2) LineTo(x, y);
Рисует отрезок от текущего положения пера до точки (x, y);
Например программа рисует отрезок из точки 100,100 в точку 200,200
cкопируйте и проверьте
program xxx;
uses graphabc, crt;
begin
moveto(100,100); {перешли в точку 100,100}
lineto(200,200); {нарисовали отрезок от этой точки до точки 200,200}
end.
3) Circle(x,y,r);
Рисует окружность с центром в точке (x, y) и радиусом r
Например: нарисуем окружность радиусом 50 пикселей с центром в точке (300,300)
cкопируйте и проверьте
program xxx;
uses graphabc, crt;
begin
circle(300,300,50);
end.
4) Rectangle(x1,y1,x2,y2);
Рисует прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2).
Например: эта программа нарисует прямоугольник с координатами левой верхней вершины 100,100 и координатами правой нижней вершины (300,300)
cкопируйте и проверьте
program xxx;
uses graphabc, crt;
begin
rectangle(100,100,300,300);
end.
|
|
|
|
|

5) TextOut(x, y, s);
Выводит строку s в позицию (x, y) (точка (x, y) задает верхний левый угол прямоугольника, который будет содержать текст из строки s).
Например: Эта программа напишет текст «Это мой дом», причем начинаться он будет с координаты 100,100
cкопируйте и проверьте
program xxx;
uses graphabc, crt;
begin
TextOut(100,100, ‘Это мой дом’);
end.
|
6) FloodFill(x, y,color);
Заливает область одного цвета цветом color, начиная с точки (x, y).
Рассмотрим, как задавать цвета. Любой цвет на мониторе складывается из трех основных цветов: красного (Red), зеленого (Green) и синего (Blue), т. е. используется так называемая модель RGB.
Цвет задается следующим образом
rgb(x,y,z)
где
х – это интенсивность красного цвета (она может быть от 0 до 255. Если 0, то красного цвета нет (погашен), если 255 – то красный цвет горит по максимуму, если например 100, то средняя яркость)
y – это интенсивность зеленого цвета
z – это интенсивность синего цвета
Таким образом rgb(255,0,0) даст нам красный цвет, rgb(0,255,0) зеленый, rgb(0,0,255) синий, rgb(0,0,0) черный, rgb(255,255,255) белый
Например: чтобы закрасить окружность красным цветом, надо выбрать точку, лежащую внутри окружности и использовать FloodFill
cкопируйте и проверьте
(эта программа рисует красный круг и зеленый прямоугольник)
program xxx;
uses graphabc, crt;
begin
circle(100,100,50);
FloodFill(100,100,rgb(255,0,0));
rectangle(200,200,300,300);
FloodFill(250,250,rgb(0,255,0));
end.
7) Задержка выполнения программы
Чтобы на экране наблюдался эффект рисования с задержкой (по порядку рисовались бы разные фигуры, а не сразу все), для этого можно использовать оператор
delay(x) – он делает паузу в выполнении программы на x миллисекунд. Этот оператор входит в модуль crt, поэтому он должен быть подключен.
Например:
delay(500) – делает задержку на 500 миллисекунд (полсекунды)
cкопируйте и проверьте
program xxx;
uses graphabc, crt;
begin
moveto(100,100);
delay(400);
lineto(100,300);
delay(400);
lineto(300,300);
delay(400);
lineto(300,100);
delay(400);
lineto(100,100);
delay(400);
floodfill(200,200,rgb(100,255,0));
end.
Еще пример:
В цикле рисуются окружности произвольного цвета, радиуса и положения, своеобразная заставка для компьютера
cкопируйте и проверьте
program xxx;
uses graphabc, crt;
var
i, x,y:integer;
begin
for i:=1 to 500 do
begin
x:= random(600);
y:= random(400) ;
circle(x, y,random(40));
floodfill(x, y,rgb(random(155)+100,random(155)+100,random(155)+100));
delay(100);
end;
end.
Задание для самостоятельного выполнения
Нарисовать домик, солнце и подписать «Мой дом» (использовать delay)
![]() | |
![]() | |
| |





