Рисование прямоугольников и окружностей средствами модуля GraphAbc




Конспект. Модуль GraphABC

_____________________________________________________________________________

Графический режим работы. Модуль GraphAbc

При работе в графическом режиме изображение на экране строится не из символов, а из точек – пикселов. Каждый пиксель (точка) имеет две координаты: х и у (рис.3.4).

Геометрические размеры пикселя определяются разрешением монитора. Разрешение монитора задается в виде x x y, где x – количество возможных пикселов на экране по горизонтали, а y – количество пикселов по вертикали. Например, известны следующие разрешения мониторов:

  • 320х200;
  • 640x480;
  • 800x600;
  • 1024x768;
  • 1280x1024 – и т.д.

Даже при самом плохом разрешении экрана изображение в графическом режиме формируется с помощью 64000 графических элементов. Из такого количества «строительных кирпичиков» можно построить хорошую картинку.

Возможности стандартной графической библиотеки

Любая графическая картинка формируется из простых геометрических фигур. Это точки, отрезки (линии), прямоугольники, окружности и т.д. Из геометрии известно, что положение геометрического объекта и его форма задаются координатами его точек. Для того чтобы запрограммировать вывод картинки, надо научиться задавать координаты геометрических фигур, из которых она состоит.

Графические координаты задают положение точки на экране монитора. Поскольку минимальным элементом, к которому имеет доступ программист, является пиксель, в качестве графических координат используют порядковые номера пикселов. Допустимый диапазон изменения графических координат составляет [ 0,x-1 ] для х - координаты и [ 0,y-1 ] для у – координаты. Началом отсчета является левый верхний угол экрана. Значения х – координаты отсчитывается слева направо, а значения у – координаты – сверху вниз.

Важно помнить:

1. Графические координаты принимают только целочисленные значения.

2. Графические координаты принимают значения, ограниченные как снизу (нулевым значением), так и сверху (значением разрешения экрана монитора).

3. Графическая координата у отсчитывается сверху вниз.

Рисование различных геометрических фигур осуществляется с помощью специальных стандартных команд (процедур). Команды для работы вграфическом режиме хранятся в библиотечном модуле GraphAbc. Модуль GraphAbc представляет собой простую графическую библиотеку и предназначен для создания графических программ. Поэтому во всех программах, которые работают в графическом режиме, еенеобходимоподключать в разделе описаний с помощью зарезервированного слова Uses (подключить). Рисование осуществляется в специальном графическом окне. Возможность рисовать одновременно в нескольких окнах отсутствует. Рисовать можно с помощью пера и кисти. В модуле GraphAbc с помощью команды setwindowsize(X,Y) можно задавать размеры графическогоокна. По умолчанию графическоеокно будет принимать размеры экрана компьютера.

Пример 1. Демонстрация подключения модуля GraphAbc

program tochka;

usesgraphabc; {подключение модуля GraphAbc}

Begin

setwindowsize(640,480); {устанавливает размеры

графического окна}

setpixel(100,120,clBlack); {устанавливает черный цвет

пера и рисует точку с координатами (100,120)}

End.

В общем виде эта команда выглядит так:

setpixel(x:integer,y:integer,c:color) – рисует пиксел (точку) с координатами (х,у) цветом с.

Стандартные цвета с задаются символическими константами:

clBlack – черный clPurple – фиолетовый clWhite – белый clMaroon – темно-красный clRed – красный clNavy – темно-синий clGreen – зеленый clBrown – коричневый clBlue – синий clSkyBlue – голубой clYellow – желтый clCream – кремовый   clAqua – бирюзовый clOlive – оливковый clFuchsia – сиреневый clTeal – сине-зеленый clGray – темно-серый clLime – ярко-зеленый clMoneyGreen – цвет зеленых денег clLtGray – светло-серый clDkGray – темно-серый clMedGray – серый clSilver – серебряный

Рисование линий средствами модуля GraphAbc

Одними точками возможности модуля GraphAbc не ограничиваются. Он умеет также рисовать геометрические фигуры – линии, прямоугольники и окружности.

Программа рисования отрезка, соединяющего две точки с координатами (120,150) и (150,80) красным цветом пера, может выглядеть так:

Пример 2. Демонстрация рисования линии

program Linii;

uses graphabc;

Begin

setwindowsize (640,480);

setpencolor (clred); {устанавливает красный цвет пера}

line (120,150,300,100); {рисует отрезок от точки с

координатами(120,150)до точки

с координатами с координатами (300,100)}

end.

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

Рис. 3.5

Из примера 2 видно, что линии можно рисовать с помощью команды line, которая имеет общий вид:

Line(x1,y1,x2,y2), где (x1,y1) и (x2,y2) - координаты точек отрезка, которого соединяет линия.

А теперь нарисуем треугольник, у которого все стороны разного цвета, с определенной толщиной (шириной) линии.

Пример 3. Демонстрация рисования линий разным цветом пера

program treugolnik;

uses graphabc;

Begin

setwindowsize(640,480);

setpenwidth(5); { устанавливает ширину текущего пера. В

скобках указывается количество пикселей,

образующих ширину линии}

setpencolor(clred); {устанавливает красный цвет пера }

line(100,200,170,70); {рисует отрезок от точки с

координатами (100,200)до точки с координатами с координатами (170,70)}

setpencolor(clGreen); {устанавливает зеленый цвет пера}

line(170,70,250,200); {рисует отрезок от точки(170,70)до

точки(250,200)}

setpencolor(clBlue); {устанавливает синий цвет пера}

line(250,200,100,200);{ рисует отрезок от точки(250,200)

до точки(100,200)}

{результат - треугольник со сторонами разных цветов}

End.

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

Важно помнить:

1. Рисуя линии, можно задавать ее размер (координатами ее концов), цвет, ширину (толщину) и стиль.

2. Для задания стиля линии в модуле GraphAbc существует процедура SetPenStyle (Style), где Style - константы стилей пера (см. Приложение).

3. Линия может быть сплошной, пунктирной, штрихпунктирной, штриховой.

Замкнутые фигуры можно закрашивать.

Изменим нашу программу (пример 3) так, чтобы она рисовала закрашенный треугольник.

Пример 4. Демонстрация рисования замкнутых фигур с помощью линий и их закрашивание

Program treug_zakrash;

uses graphabc;

Begin

setwindowsize(640,480);

clearwindow(clWhite); {очищает графическое окно белым

цветом}

setpenwidth(3); {устанавливает ширину текущего пера}

setpenstyle(pssolid); {устанавливает стиль линии –

сплошная линия}

setpencolor(clgreen); {устанавливает зеленый цвет пера}

line(100,200,170,70); {рисует линии зеленым цветом}

line(170,70,250,200);

line(250,200,100,200);

floodfill(440,120,clred); {Закрашивает треугольник

красным цветом}

End.

В результате выполнения программы на экране монитора в графическом окне появится треугольник, нарисованный зеленым и закрашенный красным цветом.

Важно помнить:

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

2. В процедуре заливки floodfill(х,у,c) указывается координата точки (х,у), которая обязательно должна попасть во внутреннюю область закрашиваемой фигуры.

Рисование прямоугольников и окружностей средствами модуля GraphAbc

Прямоугольники и окружностиможно рисоватьс помощью команд rectangle(x1,y1,x2,y2) и circle(x,y,r) соответственно (см. Приложение). Как это можно сделать, рассмотрим на примере программы, которая рисует прямоугольник и окружность.

Пример 5. Демонстрация рисования прямоугольника и окружности

program gemetry;

uses graphabc;

Begin

setwindowsize (640,480);

setpencolor (clBlue); {устанавливает голубой цвет пера

для рисования контура прямоугольника}

setpenwidth (6); {устанавливает ширину пера}

rectangle(50,50,250,150);{ рисует прямоугольник, заданный

координатами противоположных вершин}

setpencolor (clred); {устанавливает красный цвет пера

для рисования контура окружности}

circle(350,100,60); {рисует окружность с центром в точке

с координатами (350,100) и радиусом 60}

End.

Результат выполнения программы:

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-02-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: