Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Построение простейших графических изображений ⇐ ПредыдущаяСтр 4 из 4
Отображение точки Какие бы изображения не выводились на экран, все они построены из точек. Процедура PutPixel (X, Y: integer; Color: word); отображает точку на экране, где X и Y - экранные координаты точки. Color - её цвет. Приведем пример программы, при выполнении которой создается интересный визуальный эффект путем заполнения экрана множеством точек различных цветов. Отображение отрезков прямых линий Процедура Line (Xl, Yl, X2, Y2: integer); выводит на экран отрезок прямой линии. Здесь (X1, Y1) - координаты начальной точки, a (X2, Y2) - координаты конечной точки отрезка. Для построения отрезков можно применять также следующие процедуры: LineTo (X, Y); - проводит отрезок из текущей точки до точки с координатами (X, Y); LineRel (dX, dY|; - проводит отрезок из текущей точки до точки, удаленной от нее на расстояние (dX, dY). Линии можно вычерчивать самых различных стилей: тонкие, широкие, штриховые, пунктирные и т.д. Процедура SetLineStyle (< тип линии>: word; < yзop(maблон)>: word; (толщина линии): word); производит установку стиля. Константы типа линий и их толщины приведены в таблице.
Таблица 2.5.2. Константы типа линий и их толщины
Если тип линии не равен UserBitLn, то параметр «узор(шаблон)» не используется и обычно задается равным нулю, например SetLineStyle (0, 0, 3) - стиль линии - сплошная, жирная. Построение прямоугольников Процедура Rectangle (Xl, Yl, X2, Y2: integer); строит изображение прямоугольника на плоскости. Здесь XI, Y1 - координаты левого верхнего угла, X2, Y2 - координаты правого нижнего угла прямоугольника. При этом используется текущий цвет (SetColOf) и стиль линии (SetLineStyle). Область внутри прямоугольника не закрашена и совпадает по цвету с фоном. Процедура Bar (Xl, Yl, X2, Y2: integer); позволяет строить более эффектные прямоугольники. Она рисует прямоугольник, внутренняя область которого залита по текущему шаблону. Обычно используется в деловой графике для построения столбиковых диаграмм, а также для «закраски» графического окна, чтобы фон графического окна не сливался с общим фоном экрана. Рассмотрим, как производить «заливку» замкнутых областей экрана с помощью различных узоров, т.е. как выбрать узор (шаблон) и цвет заполнения фигуры. Комбинацию узор-цвет принято называть стилем заполнения. Процедура SetFillStyle (< шаблон>: word; < цвет>: word); устанавливает шаблон и цвет заполнения замкнутой фигуры.
Таблица 2.5.3. Константы шаблонов закраски приведены в таблице
Процедура FloodFill (X, Y: integer; Border: word); заполняет ограниченную область текущим цветом и стилем заполнения (SetFillStyle). Граница закрашиваемой области высвечивается цветом, заданным в Border. Если точка (X, Y) находится внутри области, то эта область закрашивается, если же она расположена вне области, то заполняется внешняя часть области. Построение дуг, эллипсов и окружностей Процедура Arc (X, Y: integer; al, a2, R: word); строит дугу. Здесь (X, Y) - центр окружности дуги, al, a2 - начальный и конечный углы, отсчитываемые от горизонтальной оси против часовой стрелки, R-радиус. Если al=00, а а2=360°, то вычерчивается полная окружность. Процедура Ellipse (X, Y: integer; al, a2, Rx, Ry: word); предназначена для построения эллиптических дуг. Здесь (X, Y) - центр эллипса, al, a2 - начальный и конечный углы, отсчитываемые от горизонтальной оси против часовой стрелки, Rx и Ry - горизонтальная и вертикальная полуоси. Если al=0°, а а2 = 3600, то вычерчивается полный эллипс. Процедура FillEllipse (X, Y: integer; Rx, Ry: word); строит полный закрашенный эллипс. Процедура Circle (X, Y: integer; R: word); выводит на экран изображение окружности с центром (X, Y) и радиусом R. Окружность рисуется цветом, заданным SetColor. Процедура PieSlice (X, Y: integer; al, n2, R: word); выводит на экран изображение закрашенного сектора круга, используя в качестве центра круга точку (X, Y), начальный угол al, конечный угол a2 и радиус R. Контур сектора высвечивается текущим цветом. При заполнении сектора используются шаблон и цвет, установленные процедурой SetFillStyle. Если al =0°, а а2=360°, то на экран выводится закрашенная окружность. Процедура Sector (X, Y: integer; al, a2, Rx; Ry: word); строит закрашенный сектор эллипса. Реализация имитации движения графических объектов Создать видимость движения на экране можно двумя способами. Первый способ заключается в том, что имитация движения объекта на экране создаётся за счёт многократного выполнения программой напора действий: нарисовать - пауза - стереть рисунок (нарисовать его в том же месте цветом фона) - изменить координаты изображения. Перед началом составления программы надо продумать описание «движущегося» объекта; характер изменения координат, определяющих текущее положение объекта; диапазон изменения и шаг. Второй способ имитации движения рисунка или его части состоит и его запоминании в отдельной области оперативной памяти с тем, чтобы в дальнейшем быстро восстановить это изображение в другом месте экрана. Для хранения фрагмента удобнее всего использовать динамическую область памяти. Получить размер памяти в байтах, необходимой для сохранения образа фрагмента, позволяет функция ImageSize (X1, Yl, X2, Y2: integer): word. Здесь (X1, YI) и (X2, Y2) - координаты верхнего левого и нижнего правого углов прямоугольника. Если полученный размер памяти больше 64Кб, то значение ImageSize = 0, a GraphResult=-1. Чтобы этого избежать, следует сохранять изображение по частям. Полученный с помощью функции ImageSize размер памяти применяют в качестве входной информации для процедуры GetMem (p, Size), которая выделяет указанный объем памяти в динамической области. Здесь р - указатель на область памяти, Size - ее размер. Процедура GetImage (Xl, Yl, X2, Y2: integer; var BitMap: word); сохраняет образ фрагмента в памяти, где XI, Y1, X2, Y2 - координаты фрагмента, BitMap - переменная, которая указывает, где сохраняется образ изображения. Процедура Putlmage (X, Y: integer; var BitMap, Mo-de: word); восстанавливает сохраненный в буфере Bit-Map прямоугольник, левый верхний угол которого задаётся координатами (X, Y). Параметр Mode задает режим вывода изображения. Циклы в графике. Построение случайных процессов Для того, чтобы картинки не были монотонными и регулярными, можно задавать фигурам случайные размеры, цвет, координаты. Для этого имеется специальная функция Random. Она генерирует случайные числа из (0, 1). Для расширения первоначального промежутка используется функция Random (I: word), которая выдает число из диапазона 0… I. На самом деле эти функции генерируют некоторую последовательность псевдослучайных чисел, и чтобы добиться иллюзии полной «случайности» используют команду Randomize, которая изменяет базу датчика случайных чисел. Заключение
Обычно человек мыслит приблизительными категориями, а язык программирования, даже самый простой, никакой приблизительности не терпит. Компьютеру нужно «говорить» абсолютно четко, по пунктам. Если хотя бы одно место прописано недостаточно четко, компьютер остановится и выдаст ошибку. Относительно лёгкий в освоении, язык Паскаль, который является одним из родоначальников программирования, прекрасно подходит для новичков в программировании. Паскаль уникальный язык программирования и без основ этого языка невозможно начать свой трудный путь по освоению азов программирования. Только Паскаль может дисциплинировать программиста и научить его логическому мышлению. В данной курсовой работе описываются различные процедуры и функции, предназначенные для создания графических объектов в Турбо Паскаль. Используя выше перечисленные процедуры и функции, можно научиться изображать различные фигуры различных форм и размеров. Целью данной курсовой работы является изучить основы языка программирования, научиться создавать графические изображения на языке Turbo Pascal. Написав данную работу, автор получила навык работы в графической среде Турбо Паскаль, научилась правильно применять разные процедуры и функции, точно определять и задавать координаты различных линий, эллипсов, окружностей, прямоугольников и т.д.
Список использованной литературы 1. Фаронов В.В. Турбо-Паскаль 7.0. Начальный курс. М.: «Нолидж», 2001 2. Мизрохи С.В. TURBO-PASCAL и объектно-ориентированное программирование. - М.: Финансы и статистика, 2002 3. Культин Н.Б. Программирование в Turbo Pascal 7.0 и Delphi. СПб.: БХВ - Санкт-Петербург, 2005. 4. Прайс Д. Программирование на языке Паскаль: Практическое руководство. Пер. с англ. - М.: Мир, 2007. 5. Грызлов В.И., Грызлова Т.П. Турбо Паскаль 7.0. - М.: «ДМК», 2000. - 416 с. 6. Зуев Е.А. Язык программирования Turbo Pascal 6.0. - М.: Унитех, 1992. - 298 с., ил. 7. Зуев Е.А. Turbo Pascal. Практическое программирование. - Приор, 1997. - 336 с. 8. Поляков Д.Б., Круглов И.Ю. Программирование в среде Турбо Паскаль 5.5. - М:., МАИ, 1992. - 576 с. 9. Лилитко Е.П. Практикум по программированию. Начальный курс. - Переяславль-Залесский, 1997. |
Последнее изменение этой страницы: 2020-02-17; Просмотров: 73; Нарушение авторского права страницы