Функции Sqr, Abs, Sqrt, Sin, Cos, Arctan, Ln, Exp, Pi в Pascal.

Мы уже знаем, какие существуют функции для целых переменных. Это – нахождение модуля числа (Функция Abc), а также возведение числа в квадрат (Функция Sqr). В этом уроке мы рассмотрим функции, применяемые к дробным числам. Это функции Sqr - квадрат ...

Использование Var, Integer, Readln.

Процедура Readln используется не только для задержки экрана. Ее основная задача - ввод данных с клавиатуры. В этой статье мы научимся вводить числа с клавиатуры, и потом выводить их на экран. Для этого нам будет необходимо познакомиться с разделом ...

Логические и символьные константы.

В данном уроке будет рассмотрено применение логических и символных констант. Логическая константа может принимать только 2 значения, либо True, либо False. В качестве значения символьной константы могут использоваться любые символы, которые есть в ...

Циклы и массивы

Работа со строковыми данными.

Написание большинства программ не обходится без строковых данных. Строковые данные используются при организации диалога для ввода исходных значений переменных, задания условий выполнения ...

Многомерные массивы.

Индексы имеют еще одно свойство — чем больше объем массива, тем менее эффективна с ним работа, поэтому часто используют массивы массивов, то есть с двумя, тремя и более индексами для идентификации ...

Процедура FloodFill закрашивает замкнутую область. Данная процедура имеет 3 параметра. Первые 2 параметра определяют точку с координатами, откуда начинается закраска. 3-й параметр определяет границу закраски.

 Процедура FloodFill.




Program Graphika15;
Uses Graph;
Procedure Graphinterface;
Var  gd, gm, error:Integer;
s:String;
Begin
gd:=detect;
s:=' ';
Initgraph(gd,gm,s);
error:=GraphResult;
if error<>GrOk then
begin
writeln(GraphErrorMsg(Error));
Halt(error)
end
end;
begin
Graphinterface;
SetColor(4);
setfillstyle(3,3);
Circle(150,150, 100);
setcolor(2);
circle(150,150,50);
FloodFill(150,150, 2);
ReadLn;
CloseGraph;
End.



Строка №19. Устанавливаем красный цвет для окружности.

Строка №20. Устанавливаем тип и цвет закраски.

Строка №21. Рисуем окружность.

Строка №22. Устанавливаем зеленый цвет для 2-ой окружности.

Строка №23. Рисуем 2-ую окружность.

Строка №24. Процедура FloodFill закрашивает замкнутую область. Первые 2 параметра являются координатой и определяют, какая область будет закрашена. В нашем примере эти параметры имеют значения 150 пикселей,150 пикселей. Эта точка входит в обе окружности, которые мы нарисовали. Поэтому какая-то из этих окружностей будет закрашена. Какая именно – зависит от 3-го параметра процедуры. Он определяет цветовую границу закраски. В нашем примере этот параметр равен 2, т.е. имеет зеленую цветовую границу. Поэтому будет закрашена зеленая окружность (та, что в строке №23).
Тип и цвет закраски установлен в строке №20.

Grafika v pascal, floodfill

Grafika v pascal, floodfill.


Теперь поменяем строку №24, установив в качестве цветовой границы красный цвет (строка №24 будет иметь вид FloodFill (150,150, 4)). После этих изменений границей закраски будет красная окружность.
После запуска программы получится:

Grafika v pascal, floodfill..


Если первые 2 параметра будут иметь другие координаты, которые выходят за пределы окружностей, то закрашена будет вся область, которая лежит за пределами окружностей.
Изменим строку №24 на такую: FloodFill(300,300, 4). В результате, будет закрашена область, лежащая за пределами обоих окружностей. Причем границей закраски будет красная окружность.

Grafika v pascal, floodfill...


Теперь изменим строку №24 на такую FloodFill(300,300, 2). В результате будет закрашена область, лежащая за пределами зеленой окружности.

Grafika v pascal, floodfill....


Если в качестве 3-го параметра указать несуществующую цветовую границу, то будет зарисован весь экран. Например, запишем строку №24 в таком виде FloodFill (300,300, 1). Здесь в качестве цветовой границы указан синий цвет, но в нашей программе нет замкнутых областей, имеющих синюю границу, поэтому будет зарисован весь экран.

Grafika v pascal, floodfill.....


Предыдущая статья : Процедуры Ellipse и FillEllipse.

Оглавление : Уроки Паскаль. Графика.

Следующая статья : Процедуры PieSlice и Sector.


Комментарии   

0 # Анастасия 27.03.2014 16:12
Спасибо! Очень помогли! :-)
Ответить

Добавить комментарий

Защитный код
Обновить

   ГлавнаяПаскальГрафика в Паскаль