Функции LENGTH и CONCAT.

Функция Length возвращает в качестве значения длину строки. Например, если в строковой переменной «stroka» записано слово «Pascal», то Length(stroka) будет равно 6. Эта операция аналогична операции Ord(stroka[0]), которую мы разбирали в 1-м уроке. ...

Функции trunc, round в Pascal.

Для того чтобы в Паскаль можно было оперировать не только целыми числами, но и дробными существуют вещественные типы данных. Один из таких типов называется Real. В этом уроке мы рассмотрим 2 функции, которые производятся над дробными числами. Это ...

Тип данных Boolean. Значения True, False в Pascal.

Мы рассмотрели с Вами целый тип данных (integer), вещественный тип (real), символьный (char). В этом уроке мы рассмотрим тип данных, который имеет большое значение в программировании. Логический типBoolean. Одной из особенностей этого типа данных ...

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

Структура программы в Паскаль.

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

Вложенные итерационные циклы.

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

Процедура SetLineStyle устанавливает толщину и тип линии. Эта процедура влияет на все линии, которые заданы процедурами Line, LineTo, Rectangle, DrawPoly, Arc, Circle и др.

 Рисование различных типов линий.




Program Graphika9;
Uses Graph;
var i,s:integer;
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;
s:=100;
for i:=0 to 3 do
begin
setlinestyle (i,0,1);
line (s,20,s,300);
s:=s+50;
end;
readln;
closegraph;
end.



В строке №3 записываем 2 переменные. Переменную «i» будем использовать в качестве счетчика цикла. Переменную «s» для изменения координат выводимых линий по оси X.

Строка №4 - №17. Процедура для запуска графического режима.

Строка №20. Присваиваем переменной «s» значение 100. Как мы уже сказали, эта переменная будет использоваться в качестве координаты X для вывода линии на экран. В строке №24 мы записываем процедуру Line и указываем для нее координаты. Как видно, координатами вывода линии будут координаты (100,20,100,300).

Строка №21. Записываем цикл. Переменная «i» в цикле будет менять свое значение от 0 до 3.

Строка №23.Здесь записывается процедура SetLineStyle. Эта процедура устанавливает тип и толщину линии. В скобках указываются 3 параметра этой линии. Первый параметр определяет тип линии и  может принимать значения  от 0 до 4. В таблице представлены различные типы линий и соответствующие им константы.

Grafika v Pascal,tipih liniyj

 В нашем примере первому параметру, определяющему тип линии, соответствует переменная «i». (строка №23). Благодаря циклу, тип линии будет меняться, принимая значения от 0 до 3. Я намеренно не включил в цикл значение 4, которое определяет пользовательский тип линии. Об этом поговорим позже.
Второй параметр в процедуре SetLineStyle описывает образец линии. Об этом параметре мы также поговорим позже. На данном этапе следует сказать, что этот параметр всегда принимает значение 0, если первый параметр принимает значение от 0 до 3. В нашем случае первый параметр процедуры SetLineStyle задается переменной «i», которая может принимать значения только 0, 1, 2 и 3. Поэтому второй параметр будет равен 0.
Третий параметр в процедуре SetLineStyle задает толщину линии и может принимать только 2 значения: либо 1, либо 3.

Grafika v Pascal,tolthina liniyj

Из таблицы видно, что если третий параметр в процедуре SetLineStyle равен 1, то будет рисоваться линия в один пиксел, если равен 3, то – в три пиксела.
Вместо числовых констант можно записывать название того или иного параметра. Например, в нашей программе строку №23 можно записать так: «setlinestyle (i,0,Normwidth);».

Строка №24. Задаем линию.

Строка №25. В переменную «s» записываем новое значение, которое больше старого значения на 50 пикселей.
Благодаря тому, что строки №23, №24 и №25 находятся в цикле, на экран будет выведено 4 линии разных типов. Координаты по оси Y этих линий будут одинаковыми, а координата по оси X будет увеличиваться на 50 пикселей при выводе на экран следующей линии.

setlinestyle

setlinestyle.


В нашем примере мы рассмотрели 4 типа линий, однако, как уже было сказано, существует 5-ый тип, который задается пользователем. При этом пользователь должен задать образец линии, который записывается во 2-ом параметре. Образец задается с помощью 4-х шестнадцатеричных чисел (от 0 до F). Если вы помните, то каждое шестнадцатеричное число кодируется 4-мя двоичными битами. На рис. показано соответствие между шестнадцатеричным числом и двоичным числом.

Grafika v Pascal,tipih liniyj,poljzovateljskiyj tip

Там где бит, имеет значение 1, в линии ставится штрих, а там где – 0, не ставится.
Например, зададим в качестве 2-го параметра 4 шестнадцатеричных числа F 5 F 5. Запишем эти числа в двоичном коде, согласно таблице сверху : 1111 0101 1111 0101.
На рис. снизу представлен увеличенный фрагмент линии, заданный с помощью пользовательских параметров.

Grafika v Pascal,tipih liniyj,poljzovateljskiyj tip.

В этой линии штрихи определяются цифрой 1, а пропуски – цифрой 0. Сначало идет 4 штриха, затем 1 пропуск, затем 1 штрих, затем один пропуск, затем 5 штрихов (дальше все повторяется). Т.е. эта линия соответствует параметру F 5 F 5.


Теперь изменим предыдущую программу.




Program Graphika10;
Uses Graph;
var i,s:integer;
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;
s:=100;
for i:=0 to 4 do
begin
setlinestyle (i,$f5f5,3);
line (s,20,s,300);
s:=s+50;
end;
readln;
closegraph;
end.



В строке №21 переменная «i» в цикле будет менять значение от 0 до 4.

В строке №23 запишем процедуру SetLineStyle и параметры для нее. В качестве второго параметра укажем значение «F5F5». Перед указанием этого параметра ставится знак доллара $. В качестве 3-го параметра укажем значение 3 (т.е. жирная линия).

setlinestyle..

setlinestyle...


Предыдущая статья : Процедура ClearDevice, SetBkColor.

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

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


Комментарии  

 
+1 # nurbeksoft 16.03.2013 13:39
мне кажется что qbasic легче...
Ответить
 

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

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

   ГлавнаяПаскальГрафика в ПаскальПроцедура MoveRel и OutText.