Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Графика в Pascal.doc
Скачиваний:
33
Добавлен:
10.06.2015
Размер:
990.21 Кб
Скачать

Графические окна.

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

Описание: SetViewPort(x1, y1, x2, y2, Clip).

Примечания: Точка (x1, y1)задает верхний левый угол области просмотра, а точка с координатами(x2, y2)определяет правый нижний угол области просмотра. Булевская переменнаяClipопределяет, будет ли изображение отсекаться текущими границами области просмотра. Определены следующие константы:ClipOn:=True;ClipOff:=False.

Процедура SetViewPort(0, 0, GetMaxX, GetMaxY, ClipOn)всегда задает в качестве области просмотра все поле графического экрана.

Все графические команды зависят от текущей области просмотра.

Процедуры InitGraph,ClearDeviceиSetGraphModeсбрасывают определение текущей области просмотра и устанавливают в качестве области просмотра весь экран. Текущее определение области просмотра можно получить с помощью процедурыGetViewSettings.

Пример программы:

ProgramExamp_19;

Программирование движущихся объектов

Очень часто хочется "оживить" картинку, "заставить" что-нибудь двигаться. Как сделать это, не используя анимационные программы средствами модуля Graph? Движение простых объектов может быть имитировано с помощью некоторых не очень сложных приемов. Один из самых простых приемов имитации движения – использование операторов цикла. В теле цикла нужно нарисовать объект заданным цветом, сделать паузу, затем нарисовать этот объект цветом фона. при этом положение двух одинаковых объектов должно изменяться в соответствии с параметрами цикла.

Рассмотрим самый простой случай: пусть движется шарик. На основе приведенной программы выполните движение шарика вверх или вниз, с ускорением, по диагонали.

Program Examp_20;

А теперь заставим двигаться более сложный объект – кораблик.

Program Examp_21;

Следующий наша работа: осуществить поворот фигуры, изображающей стрелу, вокруг заданной точки на заданный угол. Поворот выполнять, пока не будет нажата клавиша Esc. Изобразить оси координат, точку поворота и указать значения координат точки поворота на соответствующей оси.

Program Examp_22;

Написать программу, итогом работы которой будет движение шарика. Его движение должно определяться тем, какая из клавиш управления курсором нажата (вверх, вниз, влево, вправо).

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

Program Examp_23;

Составить программу, рисующую на экране картинку – "Снежную бабу" При нажатии на клавиши <стрелка влево> и <стрелка вправо> картинка должна двигаться по экрану в соответствующем направлении, но не должна выходить за границы экрана.

Program Examp_24;