Textcolor, Window, Textbackground в Pascal.

Текст, который мы выводим на экран с помощью процедуры Writeln или с помощью оператора Write можно изменять. Процедура Textcolor используется для изменения цвета выводимого текста. Процедура Textbackground изменяет цвет фона, на котором выводится ...

Ветвления в Pascal.

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

Функции Pred, Succ в Pascal.

В данном уроке мы рассмотрим функции, применяемые к типу CHAR. Функция Pred возвращает в качестве значения предшествующий символ, а функция Succ возвращает последующий символ.

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

ЗАПИСИ. ТИП ДАННЫХ RECORD.

В описании данных и связей между ними используют понятия: запись логическая и запись физическая. Физическое описание данных определяет способ их хранения во внешней памяти ЭВМ. Логическое описание ...

Инициализация одномерного массива.

Отличительной особенностью Паскаля от большинства процедурных языков является то, что все переменные должны быть инициализированы. То есть в разделе VAR переменным отводится место, а начальное ...

Процедура 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.