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

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

Строки в Паскаль.

Тип данных String (строковый тип) используется в Паскаль для обработки текстов. Если в одну переменную типа Char можно записать лишь один символ, то в переменную типа String можно записать до 255 символов.

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

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

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

Спецификация процедуры.

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

Вычисление предела последовательности.

Вычисление предела последовательности является типичной задачей на использование итерационного цикла.

Процедура 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 легче...
 
   ГлавнаяПаскальГрафика в ПаскальПроцедуры MoveTo и LineTo.