4.54M
Категория: ПрограммированиеПрограммирование

Программирование графики

1.

ПРОГРАММИРОВАНИЕ
ГРАФИКИ
В
PASCAL ABC

2.

Графический
режим
В графическом режиме экран представляет собой
совокупность точек, каждая из которых может быть окрашена в
один из 16 цветов. Каждая точка экрана имеет свои координаты
(х,у). Начало координат находится в верхнем левом углу
экрана. Координаты точек возрастают слева направо и сверху
вниз. Левая верхняя точка имеет координаты (0,0), а правая
нижняя имеет координаты (640,480).
0
100
200
300
400
500
600
640
x
100
200
300
400
480
y

3.

После запуска PascalABC, по умолчанию,
запускается текстовый режим. Для работы с графикой
служит отдельное графическое окно. Чтобы его
открыть, необходимо подключить модуль GraphABC.
В этом модуле содержится обширный набор
процедур и функций, предназначенных для работы с
графическим экраном, а также некоторые встроенные
константы и переменные, которые могут быть
использованы в программах с графикой. С их
помощью можно создавать разнообразные графические
изображения и сопровождать их текстовыми
надписями.

4.

Шаблон графической программы
Program <имя программы>;
Uses graphABC;
Var <список переменных>:<тип>;
Begin
<здесь находится непосредственно
блок решения задачи>
End.
Uses graphABC - подключение
библиотеки графических процедур;
модуля

5.

ГРАФИЧЕСКИЕ
ПРИМИТИВЫ

6.

1. ТОЧКА
setpixel(x,y,color); - закрашивает один пиксель (точку) с
координатами (x,y) цветом color.
ПРИМЕР.
setpixel(320,240,clred); - закрашивает точку с координатами
(320,240) красным цветом.
clBlack – черный
clAqua – бирюзовый
clPurple – фиолетовый
clOlive – оливковый
clWhite – белый
clFuchsia – сиреневый
clMaroon – темно-красный
clTeal – сине-зеленый
clRed – красный
clGray – темно-серый
clNavy – темно-синий
clLime – ярко-зеленый
clGreen – зеленый
clMoneyGreen – цвет зеленых денег
clBrown – коричневый
clLtGray – светло-серый
clMedGray – серый
clDkGray – темно-серый
clSilver – серебряный
clBlue – синий
clCream – кремовый
clSkyBlue – голубой
clYellow – желтый

7.

2. ЛИНИЯ
line(x1,y1,x2,y2); - вычерчивает линию от точки
c координатами
до точки
x1,y1
(x1,y1)
(x2,y2).
ПРИМЕР.
line(100,100,200,300); - вычерчивает линию от точки c
координатами (100,100) до точки
(200,300).
Замечание. В этом случае не установлен цвет рисования линии,
поэтому она вычерчивается черным цветом – это цвет по
умолчанию.
x2,y2

8.

Действия с пером(стиль и цвет рисования)
Формат записи
Как работает
SetPenColor(color);
Устанавливает цвет рисования
задаваемый параметром color.
SetPenWidth(w);
Устанавливает ширину рисования линий (контура),
равную w пикселям.
SetPenStyle(ps);
Устанавливает стиль рисования линий (контура),
задаваемый параметром ps. Смотри столбик значение:
Замечание.
Для изменения
стиля линии
толщину линии
менять нельзя!
линий
(контура),
Значение
Описание
Вид линии
psSolid
Сплошная линия
_______
psClear
Отсутствие линии
psDash
Штриховая линия
-------
psDot
Пунктирная линия
………...
psDashDot
Штрихпунктирная
линия
-.-.-.-.-.-.-
psDashDotDot
Линия – штрих и два
пунктира
-..-..-..-..-

9.

Задача 1. Составить программу, вычерчивающую
линию
зеленого цвета, толщиной 5 пикселей от точки с
координатами (100,100) до точки (400,400).
0
100
200
300
400
500
600
640
x
100
200
300
400
480
y

10.

Задача 2. Составить программу, вычерчивающую штриховую
линию зеленого цвета от точки с координатами (100,100) до
точки (400,400).
0
100
200
300
400
500
600
640
x
100
200
300
400
480
y
Замечание.
Для изменения стиля линии толщину линии менять нельзя!

11.

3. ПРЯМОУГОЛЬНИК
x1,y1
rectangle(x1,y1,x2,y2); -вычерчивает
прямоугольник c координатами диагонали (x1,y1) и (x2,y2).
x2,y2
Задача 3. Составить программу вычерчивающую прямоугольник
пунктирным контуром синего цвета с координатами диагонали
(300,250) и (600,400).
0
program pryamo;
200
300
400
500
600
640
x
uses graphABC;
100
begin
200
setpencolor(clblue);
300
setpenstyle(psdot);
100
400
rectangle(300,250,600,400);
480
end.
y

12.

Задача 4. Составить программу вычерчивающую прямоугольник
синего цвета, толщиной 2 пикселя с координатами диагонали
(300,250) и (600,400).
program pryamo;
uses graphABC;
begin
setpencolor(clblue);
0
200
300
400
500
600
640
x
100
200
300
setpenwidth(2);
400
rectangle(300,250,600,400);
end.
100
480
y

13.

Замечание. Можно вычертить прямоугольник с заливкой текущего
цвета и прямоугольник со скругленными краями.
4. Прямоугольник с заливкой текущего цвета
fillrect(x1,y1,x2,y2); - заливает прямоугольник, заданный
координатами противоположных вершин (x1,y1) и
(x2,y2), цветом текущей кисти.
Если в Задаче 4. в программе вместо процедуры рисования
прямоугольника rectangle(300,250,600,400) написать fillrect
(300,250,600,400), то результатом ее работы будет:
0
640
100
200
300
400
480
y
100
200
300
400
500
600
x

14.

5. Прямоугольник со скругленными краями
roundrect(х1,у1,х2,у2,w,h); - рисует прямоугольник со
скругленными краями с координатами диагонали (х1,у1) и (х2,у2).
Параметры w и h определяют соответственно ширину и
высоту эллипса, используемого для скругления краев.
h
w
Замечание.
Цвет, стиль и толщина рисования контура
определяется аналогично процедуре
rectangle (x1,y1,x2,y2).

15.

6. ОКРУЖНОСТЬ
circle(x,y,R); - рисует окружность
х,у
радиуса R с центром в точке
с координатами (x,y).
R
Задача 5. Составить программу, вычерчивающую окружность
штрихпунктирным контуром сиреневого цвета с координатами
центра (320,240) и радиусом 60 пикселей.
0
program krug;
200
begin
300
setpencolor(clfuchsia);
400
setpenstyle(psdashdot);
480
y
circle(320,240,60);
end.
200
300
400
500
600
640
x
100
uses graphABC;
100

16.

7. Эллипс
еllipse(x1,у1,х2,y2); - рисует эллипс, заданный своим описанным
прямоугольником с координатами
противоположных вершин (x1,y1) и (x2,y2).
x1,y1
x2,y2
Замечание.
Цвет, стиль и толщина рисования контура
определяется аналогично.

17.

8. Дуга и сектор окружности
аrc(x,y,r,a1,a2);
90
-
рисует
дугу
окружности
с
центром в точке
(x,y) и радиусом r,
заключенную между
двумя
лучами,
образующими углы
a1 и a2.
180
0
360
а1 – нач.
угол
а2 – кон.
угол
270
pie(x,y,r,a1,a2); -
рисует
сектор
окружности,
ограниченный
дугой
(параметры процедуры имеют
тот же смысл, что и в
процедуре Arc).
Сектор
Дуга
English     Русский Правила