Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Текстовый и графический режимы.

Поиск

Существуют два режима работы компьютера с монитором – текстовый и графический. В любом месте программы можно переключиться из одного режима в другой.

Текстовый режим используется для вывода на экран текстовой и числовой информации. Работая в текстовом режиме, компьютер считает экран разбитым на 25 строк и 80 столбцов. В каждой из получившихся клеточек умещается ровно один символ. Рисовать в текстовом режиме компьютер не может.

Работая в графическом режиме, компьютер считает экран разбитым на 640 столбцов и 480 строк. Каждая из получившихся клеточек называется пикселем. Изображение на экране создается из пикселей. Каждый пиксель по указанию программы может быть потухшим или гореть заданным цветом.

Текстовый режим в Паскале используется по умолчанию.

Для переключения в графический режим служит стандартная процедура InitGraph. Для того, чтобы закрыть графический режим и снова переключиться в текстовый, служит стандартная процедура CloseGraph.

Перед использованием процедуры InitGraph необходимо создать две переменные величины типа Integer с произвольными именами (Device,Mode).

Обе эти переменные при обращении к процедуре InitGraph должны быть записаны внутри круглых скобок. (Device – это тип видеоадаптера, Mode – номер графического режима. Если написать Device:=0, то Паскаль сам определит тип видеоадаптера и установит самый мощный из допустимых графический режим.)

 

Пример. Программа, рисующая окружность.

 

USES Graph;

VAR Device,Mode:Integer;

BEGIN

Device:=0;

InitGraph(Device,Mode,'a:\TP\BGI');

Circle(100,80,50);

ReadLn;

CloseGraph

END.

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

Замечание

При переключении режимов всё содержимое экрана стирается.

 

 
 

 

 


Рисование простейших фигур.

В компьютере применяется такая система координат:

 
 


x

 

y

Отличия графической системы координат от декартовой:

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

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

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

 

№ п\п название фигуры процедура назначение процедуры
  точка PutPixel(x,y,color) закрашивает точку с графическими координатами (x,y) цветом color. Цвет можно указывать как числом, так и предопределённой константой. (См. таблицу цветов.)
  отрезок прямой линии Line(x1,y1,x2,y2) рисует отрезок прямой линии, проведенной между точками с графическими координатами (x1,y1)и (x2,y2).
  прямоугольник Rectangle(x1,y1,x2,y2) рисует прямоугольник с координатами левого верхнего угла (x1,y1) и правого нижнего (x2,y2).
  залитый прямоугольник Bar (x1,y1,x2,y2) рисует залитый прямоугольник текущим цветом и закрашивает его в соответствии с установленным при обращении к SetFillStyle стилем.
  окружность Circle(x,y,R) рисует окружность с центром в точке (x,y) радиусом R.
  дуга окружности Arc(x,y,beg,end,R) рисует дугу с центром окружности дуги в точке (x,y). Параметры beg и end – это начальный и конечный углы, отсчитываемые от горизонтальной оси против часовой стрелки в градусах, R – радиус окружности.
  залитый сектор круга PieSlice(x,y,beg,end,R) рисует залитый сектор круга текущим цветом.
  эллипс Ellipse(x,y,f1,f2,rx,ry) рисует эллипс центром в точке (x,y), где f1 и f2 – начальный и конечный углы части эллипса, отсчитываемые от горизонтальной оси против часовой стрелки в градусах, rx и ry – радиусы эллипса.
  залитый сектор эллипса Sector(x,y,f1,f2,rx,ry) рисует залитый сектор эллипса текущим цветом.
  залитый эллипс FillEllips(x,y,f1,f2,rx,ry) рисует залитый эллипс текущим цветом.

 

 

 

 


Работа с цветом. Заливка. Стиль линий и заливки.

Замечание.

По умолчанию все фигуры рисуются тонкими белыми линиями.

 

Процедура SetLineStyle.

Процедура SetLineStyle(style,0,thickness) устанавливает стиль рисуемых линий.

 

стиль линии значение аргумента style
сплошная SolidLn
пунктирная DottedLn
штрихпунктирная CenterLn
штриховая DashedLn

 

стиль линии значение аргумента thickness
нормальная толщина  
толстая линия  

Замечание.

Второй аргумент используется при задании своего стиля линии.

 

Процедура SetColor.

Процедура SetColor(color) устанавливает цвет рисуемых линий.

 

 

цвет значение аргумента color код
Чёрный Black  
Синий Blue  
Зелёный Green  
Бирюзовый Cyan  
Красный Red  
Розовый Magenta  
Коричневый Brown  
Светло-серый LightGray  
Тёмно-серый DarkGray  
Светло-синий LightBlue  
Светло-зелёный Light Green  
Светло-бирюзовый Light Cyan  
Светло-красный Light Red  
Светло-розовый Light Magenta  
Жёлтый Yellow  
Белый White  

 

Процедура SetFillStyle.

Процедура SetFillStyle(style,color) устанавливает цвет и стиль заливки.

 

стиль заливки значение аргумента style код
Сплошное заполнение цветом фона EmptyFill  
Сплошное заполнение заданным цветом SolidFill  
Заполнение горизонтальными линиями LineFill  
Диагональное заполнение (///) LtSlashFill  
Диагональное заполнение толстыми линиями SlashFill  
Обратное диагональное заполнение толстыми линиями BkSlashFill  
Обратное диагональное заполнение (\\\) LtBkSlashFill  
Клетчатое заполнение HatchFill  
Косое клетчатое заполнение XhatchFill  
Чередующееся линейное заполнение InterleaveFill  
Редко расположенные точки WideDotFill  
Часто расположенные точки CloseDotFill  
Стиль определён пользователем UserFill  

Замечание.

В обращениях к процедурам SetColor и SetFillStyle вместо английских названий цвета и стиля заливки можно использовать соответствующие коды.

 

Процедура FloodFill.

Процедура FloodFill(x,y,color) закрашивает область, внутри которой находится точка с координатами (x,y). Закрашиваемая область должна быть ограничена замкнутой линией цвета color.

Замечание.

Распространённая ошибка – на вопрос о том, каким цветом будет красить оператор FloodFill(100,200,0), отвечают: "Чёрным", хотя нужно отвечать: "Не знаю, надо посмотреть в SetFillStyle".

 

Задача.

Нарисовать жёлтый квадрат и закрасить его горизонтальными линиями красного цвета.

 

Программа.

USES Graph;

VAR Device,Mode:Integer;

BEGIN

Device:=0;

InitGraph(Device,Mode,'a:\TP\BGI');

SetColor(14);

SetFillStyle(2,4);

Rectangle(200,50,300,150);

FloodFill(250,100,14);

ReadLn;

CloseGraph

END.

 
 




Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 191; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.69.25 (0.007 с.)