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

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

Строковые константы в Pascal.

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

Приоритет выполнения логических операций в Pascal.

Логические операции применяются при написании многих программ в Pascal. Все операции имеют определенный приоритет выполнения : Первой выполняется операция NOT. Второй выполняется операция AND. Последними выполняются операции OR и XOR (Они имеют ...

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

Сортировка простым включением и простым выбором.

Сортировка простым включением.
Пример 33. Методом простого включения упорядочить (отсортировать) в порядке возрастания массив из 8 целых чисел (44, 55,12,42, 94, 18, 06, 67).

Индексы одномерного массива.

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

Процедура SetViewPort  устанавливает на экране прямоугольное окно. Это прямоугольное окно является активным по отношению ко всему экрану. Различные процедуры, рисующие на экране геометрические фигуры или выводящие на экран текст, будут действовать только внутри окна.

 Использование процедуры SetViewPort.





Program Graphika25;
Uses Graph;
var x,y: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;
setviewport(100,100,300,300,clipoff);
setcolor(5);
circle(0,0,100);
readln;
closegraph
end. 




В строке №20 записываем процедуру SetViewPort. Данная процедура устанавливает окно в графическом режиме Паскаля, которое является активным окном по отношению ко всему экрану. Процедура SetViewPort имеет 5 параметров. Первые 2 параметра определяют координаты левого верхнего угла окна (в нашем примере 100,100).  3-й и 4-й параметры определяют координаты правого нижнего угла (в нашем примере 300,300). Пятый параметр может принимать только 2 значения.  СlipOn – означает, что элементы изображения, которые не умещаются в пределах окна, установленного процедурой SetViewPort, будут отсекаться. Clipoff означает, что изображения будут полностью вырисовываться на экране, даже если они не умещаются в окне, установленном процедурой SetViewPort (в нашем примере 5-й параметр имеет значение ClipOff). После построения окна с помощью процедуры SetViewPort все изображения на экране будут строиться, опираясь на это окно. В частности, теперь начало координат находится в левом верхнем углу окна, построенного с помощью процедуры SetViewPort, а не всего экрана.

Строка №22. Рисуем окружность. Обратите внимание, что координаты центра окружности имеют значение (0,0). Т.е. центр окружности будет находиться в левом верхнем углу окна, построенного с помощью процедуры SetViewPort. Следует сказать, что само окно на экране не видно, поэтому на рис. снизу показана схема построения этого окна и окружности.

Procedura SetViewPort

Прямоугольник ABCD – окно, построенное с помощью процедуры SetViewPort. На экране монитора это окно будет невидимым. После построения окна, начало координат сместится в точку B (с реальными координатами 100,100). Поэтому окружность, которую мы построили (строка №22) имеет координаты центра (0,0), т.е. совпадает с левым верхним углом окна (реально, центр окружности имеет координаты (100,100)).

Procedura SetViewPort.

Procedura SetViewPort..

Теперь изменим 5-й параметр процедуры SetVIewPort на Clipon. Т.е. отсечем изображение, выходящее за пределы окна, установленного процедурой SetViewPort. Строка №20 будет иметь вид: setviewport(100,100,300,300,clipon);.

Procedura SetViewPort...

Как видите, изображение, находящееся за пределами окна, исчезло.


Предыдущая статья : Функции GetX и GetY.

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

Следующая статья : Построение системы координат.


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