рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Процедура PutImage

Процедура PutImage - раздел Информатика, Технологии программирования Выводит В Заданное Место Экрана Копию Фрагмента Изображения, Ранее Помещенную...

Выводит в заданное место экрана копию фрагмента изображения, ранее помещенную в память процедурой Getlmage. Заголовок:

Procedure Putlmage(X,Y: Integer; var Buf; Mode: Word);

Здесь X,Y– координаты левого верхнего угла того места на экране, куда будет скопирован фрагмент изображения; Buf – переменная или участок кучи, откуда берется изображение; Mode – способ копирования.

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

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

const

NormalPut= 0;{Замена существующего изображения на копию}

XorPut = 1;{Исключительное ИЛИ}

OrPut = 2;{Объединительное ИЛИ}

AndPut = 3;{Логическое И}

NotPut = 4;{Инверсия изображения}

Наиболее часто используются операции NormalPut, XORPut и NotPut. Первая из них просто стирает часть экрана и на это место помещает копию из памяти в том виде, как она там сохраняется. Операция NotPut делает то же самое, но копия выводится в инверсном виде. Для монохромного режима это означает замену светящихся пикселей на темные и наоборот. В цветном режиме операция NotPut применяется к коду цвета каждого пикселя. Например, для White (код 15 или в двоичном виде 1111) эта операция даст код 0000 = 0 = Black, для Red = 4 = 0100 получим 1011 = 11 = LightCyan и т.д. Операция XORPut, примененная к тому же месту экрана, откуда была получена копия, сотрет эту часть экрана. Если операцию применить дважды к одному и тому же участку, вид изображения на экране не изменится. Таким способом можно довольно просто перемещать изображения по экрану, создавая иллюзию движения.

Следующая программа рисует «Неопознанный Летающий Объект» – летающую тарелку на звездном фоне.

Uses Graph, CRT;

const

r = 20; {Характерный размер НЛО}

pause = 50; {Длительность паузы}

var

d,m,e,xm/ym,x,y/lx,ly,rx,ry,

Size,i,dx,dy,Width,Height: Integer;

Saucer : Pointer;

label

loop;

begin

{Инициируем графику}

d := Detect; lnitGraph(d, m, ' ') ;

e := GraphResult; if e <> grOk then

WriteLn(GraphErrorMsg(e))

else

begin

x := r*5;

у := r*2;

xm := GetMaxX div 4;

ym := GetMaxY div 4;

{Создаем «тарелку» из двух эллипсов с усами антенн}

Ellipse (х,у,0,360,r,r div 3+2); ,

Ellipse (х,у-4,190,357,r,r div 3);

Line (х+7,у-б,х+10,у-12);

Line (x-7,y-6, х-10, у-12);

Circle (x+10,y-12,2);

Circle (х-10,у-12,2);

FloodFill(x+l,y+4,White);

{Определяем габариты НЛО и помещаем его в кучу}

1х := х-r-1;

1у := у-14;

гх := х+r+1;

гу := у+r div 3+3;

Width := rx - lx + 1;

Height:= ry - ly + 1;

Size := ImageSize(lx, ly, rx, ry);

GetMem (Saucer, Size);

Getlmage (lx, ly, rx, ry, Saucer^);

{Стираем построенное}

Putlmage (lx, ly, Saucer^, xorPut);

{Создаем звездное небо}

Rectangle(xm,ym,3 *xm,3 *ym);

SetViewPort(xm+1,ym+1,3*xm-1,3*ym-1,ClipOn);

xm := 2*xm;

ym := 2*ym;

for i:=1 to 200 do

PutPixe1 (Random(xm), Random(ym), White) ;

{Задаем начальное положение НЛО и направление движения}

х := xm div 2;

у := ym div 2;

dx := 10;

dy := 10;

{Основной цикл}

repeat

Putlmage(x,y,Saucer^,xorPut); {Изображаем НЛО на}

Delay(pause); {новом месте и после}

Putlmage (x, у, Saucer^, XorPut);{паузы стираем его}

{Получаем новые координаты}

loop: x := x+dx;

у := y+dy;

{НЛО достиг границы экрана?}

if (x<0) or (x+Width+1>xm) or

(у<0) or (y+Height+1>ym) then

begin {Да - НЛО достиг границы: меняем направление его перемещения}

x := x-dx;

y:= y-dy;

dx : = GetMaxX div 10 - Random(GetMaxX div 5);

dy := GetMaxY div 30 - Random(GetMaxY div 15);

goto loop

end

until KeyPressed;

if ReadKey=#0 then x := ord(ReadKey);

CloseGraph

end

end.

 

– Конец работы –

Эта тема принадлежит разделу:

Технологии программирования

Красноярский государственный аграрный университет...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Процедура PutImage

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Учебно-методическое пособие к учебной практике
для студентов специальности (направления) 010502.65 – «Прикладная информатика (в экономике)», 080700.62 – «Бизнес - информатика»     Красноярск

Цель и задачи практики
  Учебная практика по технологиям программирования является а) логическим продолжением дисциплин «Информатика и программирование» и «Вычислительные системы, сети и телекоммун

Организация проведения практики
  Учебная практика по технологиям программирования проводится после сдачи летней сессии первого курса (второго семестра). По ее окончании студенты, успешно выполнившие программу практ

Основные требования к оформлению отчета
  Отчет оформляется на листах белой бумаги формата А4 (210х297 мм) с одной стороны. Шрифт: Times New Roman 14 – 16 (в схемах алгоритмов допускается использование более мелких шрифтов,

Структура модулей
Модуль имеет следующую структуру: UNIT <имя>; INTERFACE <интерфейсная часть> IMPLEMENTATION <исполняемая часть> BEGIN

Заголовок модуля и связь модулей друг с другом
Заголовок модуля состоит из зарезервированного слова UNIT и следующего за ним имени модуля. Для правильной работы среды Турбо Паскаля и возможности подключения средств, облегчающих разработку крупн

Компиляция модулей
В среде Турбо Паскаля имеются средства, управляющие способом компиляции модулей и облегчающие разработку крупных программных проектов. В частности, определены три режима компиляции: COMPILE, MAKE и

Доступ к объявленным в модуле объектам
Пусть, например, мы создаем модуль, реализующий арифметику комплексных чисел (такая арифметика ни в стандартном Паскале, ни в Турбо Паскале не предусмотрена). К сожалению, в Турбо Паскале нельзя ис

Стандартные модули
В Турбо Паскале имеется восемь стандартных модулей, в которых содержится большое число разнообразных типов, констант, процедур и функций [1-3, 5]. Этими модулями являются SYSTEM, DOS, CRT, PRINTER,

Использование библиотеки CRT
  Во многих случаях стандартные для Паскаля возможности ввода/вывода данных с помощью процедур Read, ReadLn, Write, WriteLn оказываются явно недостаточными для разработки удобных в ис

Функция KeyPressed
Возвращает значение типа Boolean, указывающее состояние буфера клавиатуры: False означает, что буфер пуст, a True – что в буфере есть хотя бы один символ, еще не прочитанный программой. В

Функция ReadKey
Возвращает значение типа Char. При обращении к этой функции анализируется буфер клавиатуры: если в нем есть хотя бы один непрочитанный символ, код этого символа берется из буфера и возвращается в к

Текстовый вывод на экран
Используемое в ПК устройство визуального отображения информации – дисплей – состоит из двух основных частей: монитора, содержащего экран (электронно-лучевую трубку или жидкокристаллическую панель)

Процедура TextMode
Используется для задания одного из возможных текстовых режимов работы адаптера. Заголовок процедуры: Procedure TextMode(Mode: Word); Здесь Mode – код текстового режима. В качестве

Процедура TextBackground
Определяет цвет фона. Заголовок: Procedure TextBackground(Color: Byte); Единственным параметром обращения к этим процедурам должно быть выражение типа Byte, задающее код нужного ц

Процедура ClrScr
Очищает экран или окно (см. ниже процедуру Window). После обращения к ней экран (окно) заполняется цветом фона и курсор устанавливается в его левый верхний угол. Например: Uses CRT;

Процедура Window
Определяет текстовое окно – область экрана, которая в дальнейшем будет рассматриваться процедурами вывода как весь экран. Сразу после вызова процедуры курсор помещается в левый верхний угол окна, а

Функции WhereX и WhereY
С помощью этих функций типа Byte можно определить текущие координаты курсора: WhereX возвращает его горизонтальную, a WhereY – вертикальную координаты. В следующей программе сначала в цент

Процедура AssignCRT
Связывает текстовую файловую переменную F с экраном с помощью непосредственного обращения к видеопамяти (т.е. к памяти, используемой адаптером для создания изображения на экране). В результате выво

Процедура Delay
Обеспечивает задержку работы программы на заданный интервал времени. Заголовок процедуры: Procedure Delay(T: Word); Здесь Т – выражение типа Word, определяющее интервал времени (в

Краткая характеристика графических режимов работы дисплейных адаптеров
Настройка графических процедур на работу с конкретным адаптером достигается за счет подключения нужного графического драйвера. Драйвер – это специальная программа, осуществляющая управление теми ил

Процедура InitGraph
Инициирует графический режим работы адаптера. Заголовок процедуры: Procedure InitGraph(var Driver,Mode: Integer; Path: String); Здесь Driver – переменная типа Integer, определяет

Функция GraphResult
Возвращает значение типа Integer, в котором закодирован результат последнего обращения к графическим процедурам. Если ошибка не обнаружена, значением функции будет ноль, в противном случае – отрица

Функция GraphErrorMsg
Возвращает значение типа String, в котором по указанному коду ошибки дается соответствующее текстовое сообщение. Заголовок функции: Function GraphErrorMsg(Code: Integer): String;

Процедура SetGraphMode
Устанавливает новый графический режим работы адаптера. Заголовок: Procedure SetGraphMode(Mode: Integer); Здесь Mode – код устанавливаемого режима. Следующая программа илл

Функция GetModeName
Возвращает значение типа String, содержащее разрешение экрана и имя режима работы адаптера по его номеру. Заголовок: Function GetModName(ModNumber: Integer): String; Здесь ModNumb

Процедура GetModeRange
Возвращает диапазон возможных режимов работы заданного графического адаптера. Заголовок: Procedure GetModeRange(Drv: Integer; var Min, Max: Integer); Здесь Drv – тип адаптера; Min

Процедура SetViewPort
Устанавливает прямоугольное окно на графическом экране. Заголовок: Procedure SetViewPort(XI,Y1,X2,Y2: Integer; ClipOn: Boolean); Здесь X1...Y2 – координаты левого верхнего (XI,Y1)

Процедура ClearViewPort
Очищает графическое окно, а если окно не определено к этому моменту - весь экран. При очистке окно заполняется цветом с номером О из текущей палитры. Указатель перемещается в левый верхний угол окн

Процедура GetAspectRatio
Возвращает два числа, позволяющие оценить соотношение сторон экрана. Заголовок: Procedure GetAspectRatio(var X,Y: Word); Здесь X, Y – переменные типа Word. Значения, возвращаемые

Процедура SetAspectRatio
Устанавливает масштабный коэффициент отношения сторон графического экрана. Заголовок: Procedure SetAspectRatio(X,Y: Word); Здесь X, Y- устанавливаемые соотношения сторон.

Процедура SetActivePage
Делает активной указанную страницу видеопамяти. Заголовок: Procedure SetActivePage(PageNum: Word); Здесь PageNum – номер страницы. Процедура может использоваться только с

Процедура SetVisualPage
Делает видимой страницу с указанным номером. Обращение: Procedure SetVisualPAge(PageNum: Word); Здесь PageNum – номер страницы. Процедура может использоваться только с ад

Процедура PutPixel
Выводит заданным цветом точку по указанным координатам. Заголовок: Procedure PutPixel(X,Y: Integer; Color: Word); Здесь X, Y– координаты точки; Color – цвет точки. Коорди

Процедура Line
Вычерчивает линию с указанными координатами начала и конца. Заголовок: Procedure Line(X1,Y1,X2,Y2: Integer); Здесь XL. .Yl – координаты начала (XI, Y1) и конца (Х2, Y2) линии.

Процедура SetLineStyle
Устанавливает новый стиль вычерчиваемых линий. Заголовок: Procedure SetLineStyle(Type,Pattern,Thick: Word) Здесь Type, Pattern, Thick – соответственно тип, образец и толщина линии

Процедура SetWriteMode
Устанавливает способ взаимодействия вновь выводимых линий с уже существующим на экране изображением. Заголовок: Procedure SetWriteMode(Mode); Здесь Mode – выражение типа Integer,

Процедура Rectangle
Вычерчивает прямоугольник с указанными координатами углов. Заголовок: Procedure Rectangle(X1,Y1,X2,Y2: Integer); Здесь X1... Y2 – координаты левого верхнего (X1, Y1) и правого ниж

Процедура DrawPoly
Вычерчивает произвольную ломаную линию, заданную координатами точек излома. Procedure DrawPoly(N: Word; var Points) Здесь N – количество точек излома, включая обе крайние точки; P

Процедура Circle
Вычерчивает окружность. Заголовок: Procedure Circle(X,Y: Integer; R: Word); ЗдесьX, Y– координаты центра; R – радиус в пикселях. Окружность выводится текущим цветом. Толщ

Процедура Arc
Чертит дугу окружности. Заголовок: Procedure Arc(X,Y: Integer; BegA,EndA,R: Word); Здесь X, Y – координаты центра; BegA, EndA – соответственно начальный и конечный углы дуги; R –

Процедура GetArcCoords
Возвращает координаты трех точек: центра, начала и конца дуги. Заголовок: Procedure GetArcCoords(var Coords: ArcCoordsType); Здесь Coords – переменная типа ArcCoordsType, в которо

Процедура Ellipse
Вычерчивает эллипсную дугу. Заголовок: Procedure Ellipse(X,Y: Integer; BegA,EndA,RX,RY: Word); Здесь X, Y – координаты центра; BegA, EndA – соответственно начальный и конечный угл

Процедура SetBkColor
Устанавливает цвет фона. Заголовок: Procedure SetBkColor(Color: Word); Здесь Color – цвет фона. В отличие от текстового режима, в котором цвет фона может быть только темн

Процедура SetPalette
Заменяет один из цветов палитры на новый цвет. Заголовок: Procedure SetPalette(N: Word; Color: Shortlnt); Здесь N – номер цвета в палитре; Color – номер вновь устанавливаемого цве

Процедура GetPalette
Возвращает размер и цвета текущей палитры. Заголовок: Procedure GetPalette(var Palettelnfo: PaletteType); Здесь Palettelnfo – переменная типа PaletteType, возвращающая размер и цв

Процедура SetAllPalette
Изменяет одновременно несколько цветов палитры. Заголовок процедуры: Procedure SetAllPalette(var Palette); Параметр Palette в заголовке процедуры описан как нетипизированный парам

Процедура SetFillStyle
Устанавливает стиль (тип и цвет) заполнения. Заголовок: Procedure SetFillStyle(Fill,Color: Word); Здесь Fill – тип заполнения; Color – цвет заполнения. С помощью заполнен

Процедура SetFillPattern
Устанавливает образец рисунка и цвет штриховки. Заголовок: Procedure SetFillPattern(Pattern: FillPatternType;Color: Word); Здесь Pattern – выражение типа FillPatternType; устанавл

Процедура GetFillSettings
Возвращает текущий стиль заполнения. Заголовок: Procedure GetFillSettings(var Pattlnfo: FillSettingsType); Здесь Pattlnfo – переменная типа FillSettingsType, в которой возвращаетс

Процедура SetRGBPalette
Устанавливает цветовую гамму при работе с дисплеем IBM 8514 и адаптером VGA. Заголовок: Procedure SetRGBPalette(ColNum, RedVal,GreenVal,BlueVal:Integer); Здесь ColNum – н

Процедура FloodFill
Заполняет произвольную замкнутую фигуру, используя текущий стиль заполнения (узор и цвет). Заголовок: Procedure FloodFill(X,Y: Integer; Border: Word); Здесь X, Y – координаты любо

Процедура Bar
Заполняет прямоугольную область экрана. Заголовок: Procedure Bar(X1,Y1,X2,Y2: Integer); Здесь XJ...Y2 – координаты левого верхнего (X1, Y1) и правого нижнего (Х2, Y2) углов закраш

Процедура Ваr3D
Вычерчивает трехмерное изображение параллелепипеда и закрашивает его переднюю грань . Заголовок: Procedure Ваr3D (X1,Y1,X2,Y2,Depth: Integer; Top: Boolean); Здесь X1... Y2 – коорд

Процедура FillPoly
Обводит линией и закрашивает замкнутый многоугольник. Заголовок: Procedure FillPoly(N: Word; var Coords); Здесь N – количество вершин замкнутого многоугольника; Coords – переменна

Процедура Sector
Вычерчивает и заполняет эллипсный сектор. Заголовок: Procedure Sector(X,Y: Integer; BegA,EndA,RX,RY: Word); Здесь BegA, EndA – соответственно начальный и конечный углы эллипсного сектора.

Процедура PieSlice
Вычерчивает и заполняет сектор окружности. Заголовок: Procedure PieSlice(X,Y: Integer; BegA,EndA,R: Word); В отличие от процедуры Sector, указывается лишь один горизонтальный ради

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

Процедура OutText
Выводит текстовую строку, начиная с текущего положения указателя. Заголовок: Procedure OutText(Txt: String); Здесь Txt – выводимая строка. При горизонтальном направлении

Процедура SetTextStyle
Устанавливает стиль текстового вывода на графический экран. Заголовок: Procedure SetTextStyle(Font,Direct,Size: Word); Здесь Font – код (номер) шрифта; Direct – код направления; S

Процедура SetTextJustify
Задает выравнивание выводимого текста по отношению к текущему положению указателя или к заданным координатам. Заголовок: Procedure SetTextJustify(Horiz,Vert: Word); Здесь Horiz –

Процедура SetUserCharSize
Изменяет размер выводимых символов в соответствии с заданными пропорциями. Заголовок: Procedure SetUserCharSize(XI,X2,Yl,Y2: Word); Здесь X1...Y2 – выражения типа Word, определяющ

Процедура GetTextSettings
Возвращает текущий стиль и выравнивание текста. Заголовок: Procedure GetTextSettins(var Textlnfo: TextSettingsType); Здесь Textlnfo – переменная типа TextSettingsType, который в м

Функция InstallUserFont
Позволяет программе использовать нестандартный векторный шрифт. Заголовок функции: Function InstallUserFont(FileName: String): Integer; Здесь FileName – имя файла, содержащего век

Функция InstallUserDriver
Включает нестандартный графический драйвер в систему BGI-драйверов. Заголовок функции: Function InstallUserDriver(FileName: String; AutoDetectPtr: Pointer): Integer; Здесь FileNam

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

Глоссарий
  Видеоадаптер (или видеокарта) – это специальное устройство, позволяющее выводить изображение на экран монитора. Видеокарта состоит из следующих частей: видеопамять,

Отчет по учебной практике
«Технологии программирования»     Выполнил(а) студент(ка) группы _____ _(Фамилия, имя, отчество)_ «___

ПРАВИЛА ВЫПОЛНЕНИЯ СХЕМ
1.1. При выполнении схем алгоритмов и программ отдельные функции алгоритмов и программ, с учетом степени их детализации, отображаются в виде условных графических обозначений – символов по ГОСТ 19.0

ПРАВИЛА ПРИМЕНЕНИЯ СИМВОЛОВ
2.1. Применения символов должно соответствовать указанному в таблице.     Фрагмент схемы Содержание обозначения

ГОСУДАРСТВЕННЫЙ СТАНДАРТ СОЮЗА ССР
Единая система программной документации ГОСТ 19.003-80 Взамен ГОСТ 19428-74   СХЕМЫ АЛГОРИТМОВ И ПРОГРАММ. ОБОЗНАЧ

ПЕРЕЧЕНЬ, НАИМЕНОВАНИЕ, ОБОЗНАЧЕНИЕ СИМВОЛОВ И ОТОБРАЖАЕМЫЕ ИМИ ФУНКЦИИ
1.1. Перечень, наименование, обозначение и размеры обязательных символов и отображаемые ими функции в алгоритме и программе обработки данных должны соответствовать указанным в таблице 1. Т

СООТНОШЕНИЕ ГЕОМЕТРИЧЕСКИХ ЭЛЕМЕНТОВ СИМВОЛОВ
2.1. Размер a должен выбираться из ряда 10, 15, 20 мм. Допускается увеличивать размер a на число, кратное 5. Размер b равен 1,5a. Примечание. При ручном выполнении схем ал

СИМВОЛЫ, ВЫПОЛНЕННЫЕ С ПОМОЩЬЮ ПЕЧАТАЮЩИХ УСТРОЙСТВ
Наименование Обозначение 1. Процесс

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги