ПРОГРАММИРОВАНИЕ ГРАФИКИ
В
PASCAL ABC
Графический режим
В графическом режиме экран представляет собой совокупность точек, каждая из которых может быть окрашена в один из 16 цветов. Каждая точка экрана имеет свои координаты (х,у) . Начало координат находится в верхнем левом углу экрана. Координаты точек возрастают слева направо и сверху вниз. Левая верхняя точка имеет координаты (0,0), а правая нижняя имеет координаты (640,480).
0 100 200 300 400 500 600 640
x
100
200
300
400
480
y
После запуска Pascal ABC , по умолчанию, запускается текстовый режим. Для работы с графикой служит отдельное графическое окно. Чтобы его открыть, необходимо подключить модуль GraphABC .
В этом модуле содержится обширный набор процедур и функций, предназначенных для работы с графическим экраном, а также некоторые встроенные константы и переменные, которые могут быть использованы в программах с графикой. С их помощью можно создавать разнообразные графические изображения и сопровождать их текстовыми надписями.
End. Uses graphABC - подключение модуля библиотеки графических процедур; " width="640"
Шаблон графической программы
Program ;
Uses graphABC;
Var :;
Begin
блок решения задачи
End.
Uses graphABC - подключение модуля библиотеки графических процедур;
ГРАФИЧЕСКИЕ ПРИМИТИВЫ
setpixel(x,y,color); - закрашивает один пиксель (точку) с координатами ( x,y) цветом color .
ПРИМЕР.
setpixel(320,240,clred); - закрашивает точку с координатами (320,240) красным цветом.
clBlack – черный
clPurple – фиолетовый
clAqua – бирюзовый
clWhite – белый
clOlive – оливковый
clFuchsia – сиреневый
clMaroon – темно-красный
clRed – красный
clTeal – сине-зеленый
clNavy – темно-синий
clGray – темно-серый
clGreen – зеленый
clLime – ярко-зеленый
clMoneyGreen – цвет зеленых денег
clBrown – коричневый
clMedGray – серый
clLtGray – светло-серый
clSilver – серебряный
clDkGray – темно-серый
clCream – кремовый
clBlue – синий
clSkyBlue – голубой
clYellow – желтый
line(x1,y1,x2,y2); - вычерчивает линию от точки c координатами (x1,y1)
до точки (x2,y2) .
x1,y1
x2,y2
ПРИМЕР.
line(100,100,200,300); - вычерчивает линию от точки c координатами (100,100) до точки (200,300).
Замечание. В этом случае не установлен цвет рисования линии, поэтому она вычерчивается черным цветом – это цвет по умолчанию.
Действия с пером(стиль и цвет рисования)
Формат записи
Как работает
SetPenColor(color);
Устанавливает цвет рисования линий (контура), задаваемый параметром color .
SetPenWidth(w);
SetPenStyle(ps);
Устанавливает ширину рисования линий (контура), равную w пикселям.
Устанавливает стиль рисования линий (контура), задаваемый параметром ps . Смотри столбик значение :
Значение
psSolid
Описание
Вид линии
Сплошная линия
psClear
psDash
_______
Отсутствие линии
psDot
Штриховая линия
psDashDot
- - - - - - -
Пунктирная линия
……… ...
Штрихпунктирная линия
psDashDotDot
-.-.-.-.-.-.-
Линия – штрих и два пунктира
-..-..-..-..-
Задача 1. Составить программу вычерчивающую штриховую линию зеленого цвета, толщиной 5 пикселей от точки с координатами (100,100) до точки (400,400).
0 100 200 300 400 500 600 640
x
program liniya;
uses graphABC;
begin
setpencolor(clgreen);
setpenwidth(5);
setpenstyle(psdash);
line(100,100,400,400);
end.
100
200
300
400
480
y
rectangle(x1,y1,x2,y2); -вычерчивает
прямоугольник c координатами диагонали (x1,y1) и (x2,y2).
Задача 2. Составить программу вычерчивающую прямоугольник пунктирным контуром синего цвета, толщиной 2 пикселя с координатами диагонали (300,250) и (600,400).
x1,y1
x2,y2
0 100 200 300 400 500 600 640
program pryamo;
uses graphABC;
begin
setpencolor(clblue);
setpenwidth(2);
setpenstyle(psdot);
rectangle(300,250,600,400);
end.
x
100
200
300
400
480
y
Замечание. Можно вычертить прямоугольник с заливкой текущего цвета и прямоугольник со скругленными краями.
- Прямоугольник с заливкой текущего цвета
fillrect(x1,y1,x2,y2); - заливает прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2), цветом текущей кисти.
Если в Задаче 2. в программе вместо процедуры рисования прямоугольника rectangle(300,250,600,400) написать fillrect (300,250,600,400) , то результатом ее работы будет:
0 100 200 300 400 500 600 640
x
100
200
300
400
480
y
- Прямоугольник с заливкой текущего цвета
roundrect(х1,у1,х2,у2,w,h); - рисует прямоугольник со скругленными краями с координатами диагонали (х1,у1) и (х2,у2). Параметры w и h определяют соответственно ширину и высоту эллипса, используемого для скругления краев.
h
w
Замечание. Цвет, стиль и толщина рисования контура определяется аналогично процедуре
rectangle (x1,y1,x2,y2).
circle(x,y,R); - рисует окружность радиуса R с центром в точке с координатами (x,y).
х,у
R
Задача 3. Составить программу вычерчивающую окружность штрихпунктирным контуром сиреневого цвета, толщиной 3 пикселя с координатами центра (320,240) и радиусом 60 пикселей.
0 100 200 300 400 500 600 640
program krug;
uses graphABC;
begin
setpencolor(clfuchsia);
setpenwidth(3);
setpenstyle(psdashdot);
circle(320,240,60);
end.
x
100
200
300
400
480
y
еllipse(x1,у1,х2,y2); - рисует эллипс, заданный своим описанным прямоугольником с координатами противоположных вершин (x1,y1) и (x2,y2).
x1,y1
x2,y2
Замечание. Цвет, стиль и толщина рисования контура определяется аналогично.
90
аrc(x,y,r,a1,a2); - рисует дугу окружности с центром в точке (x,y) и радиусом r, заключенную между двумя лучами, образующими углы a1 и a2.
180
0
360
а2 – кон. угол
а1 – нач. угол
270
pie(x,y,r,a1,a2); - рисует сектор окружности, ограниченный дугой (параметры процедуры имеют тот же смысл, что и в процедуре Arc).
Сектор
Дуга