Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОТВ

.pdf
Скачиваний:
16
Добавлен:
10.02.2015
Размер:
1.85 Mб
Скачать

одно из этих значений через параметр GrDriver. Параметру GrMode присваивается значение установленной графической моды (от 0 до 4), причем устанавливается старшая мода. У драйвера VGA есть три моды, различающиеся разрешением экрана и количеством видеостраниц:

0 - 640 ´ 200, 4 страницы,

1 - 640 ´ 350, 2 страницы,

2 - 640 ´ 480, 1 страница.

Именованные константы для графических мод также описаны в модуле Graph; так, для перечисленных выше мод это: VGALo, VGAMed, VGAHi.

38.FUNCTION GetGraphMode : Integer; - возвращает установленную графическую моду.

39.PROCEDURE RestoreCrtMode; - устанавливает текстовый режим монитора. Эта процедура совместно с SetGraphMode может использоваться для отладки графических программ. Предположим, что мы написали, но пока еще не отладили графическую программу. Мы хотим вывести какую-либо информацию, вычисляемую программой, на экран, но использовать для вывода процедуру OutText довольно затруднительно. Организуем нашу программу следующим образом :

... InitGraph ... { здесь мы хотим вывести информацию } RestoreCrtMode; WRITELN(...

{ вернемся в графику } SetGraphMode(GetGraphMode); ...

40.FUNCTION GraphResult :Integer; - возвращает код завершения последней графической операции; если этот код равен grOK (=0), то операция выполнена успешно, в противном случае произошла ошибка.

Билет №14. Машинная графика. Элементы управления на языке Паскаль.

Чтобы создать элементы управления (кнопки, метки, списки) в языке PascalABC.NET - необходимо воспользоваться одним из конструкторов класса ButtonABC (этот класс находится в модуле ABCButtons, который необходимо добавить к проекту):

uses

GraphABC, ABCButtons; begin SetWindowTitle('Кнопки'); SetWindowWidth(300); SetWindowHeight(300);

var btnTimer := new ButtonABC(10, 250, 120, 24, 'Запустить таймер', clMoneyGreen); end.

Кнопке дано имя btnTimer, по которому к ней можно обращаться. Перед именем ставится префикс btn, чтобы отличать кнопку от других элементов управления. Размеры кнопки можно изменить при помощи следующих свойств: btnTimer.Width:= 160;

btnTimer.Height:= 32;

Для перемещения кнопки используются свойства Left и Top:

btnTimer.Left:= 20; btnTimer.Top:= 150;

Можно одновременно изменять обе координаты, указав в скобках новые координаты левого верхнего угла элемента управления:

btnTimer.Position:= new Point(40, 100);

Такое же действие оказывает на кнопку и метод MoveTo, который перемещает её в заданное место окна. Заставим кнопку беспрерывно перемещаться по экрану:

var offset:=-1; var left:=10; var top:= 148;

While (True) do begin

For var i:=1 To 80 do begin left:=left-offset; top:=top+offset;

btnTimer.MoveTo(left,top); Sleep(10);

End; //For offset:= - offset; End; //While

Добавим к программе процедуру-обработчик события Onclick, которое возникает при нажатии на кнопку; procedure btnTimer_OnClick;

begin

btnTimer.Text := 'Остановить таймер'; end;

btnTimer.OnClick := btnTimer_OnClick;

полный код программы

После того как мы остановим таймер, должна вернуться первоначальная надпись - поправим нашу процедуру: procedure btnTimer_OnClick;

begin

if (btnTimer.Text := 'Остановить таймер') then btnTimer.Text := 'Запустить таймер'

else

btnTimer.Text := 'Остановить таймер'; end;

полный код программы

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

_timer := new Timer(1000, timer_OnTick);

Первый параметр в конструкторе отвечает за время срабатывания таймера. В данном случае оно равняется одной секунде, или 1000 миллисекунд. Это значит, что через каждую секунду будет происходить событие Tick, которое мы сможем обрабытывать в процедуре timer_OnTick

Значение свойства Inretval задается в миллисекундах, а нужны секунды, придётся его поделить на 1000. Прошедшее после нажатия на кнопку время - выводим в заголовке окна приложения:

procedure timer_OnTick; begin

time:= time + _timer.Interval/1000; Window.Title:= ' Прошло: ' + time.ToString(); end;

Необходимо, чтобы таймер начал отсчёт времени только после нажатия на кнопку, то его нужно запустить в процедуре btnTimer_OnClick методом Start:

procedure btnTimer_OnClick; begin

if (btnTimer.Text = 'Остановить таймер') then begin

btnTimer.Text := 'Запустить таймер'; _timer.Stop();

end else begin

btnTimer.Text := 'Остановить таймер'; _timer.Start();

end end;

Метод Stop останавливает таймер после его запуска методом Start.

полный код программы

Для вывода информации лучше использовать элемент управления метку, а не заголовок окна.

В паскале такого ЭУ нет, но можно использовать обычный объект прямоугольник типа RectangeABC, который описан в модуле ABCObjects. Добавим его:

uses GraphABC, ABCButtons, Timers; ABCObjects;

Объявляем глобальную переменную типа RectangeABC: lblNime: RectangleABC;

В основной программе создаём метку с помощью ключевого слова new: lblNime:= new RectangleABC(10, 18, 120, 26, Color.White); lblNime.FontStyle:= fsBold;

Надпись на метке выведем в процедуре timer_OnTick: procedure timer_OnTick;

begin

time:= time + _timer.Interval/1000; Window.Title:= ' Прошло: ' + time.ToString(); lblNime.Text:= ' Прошло: ' + time.ToString(); end;

полный код программы

Размеры метки, а также её положение в окне приложения можно задать с помощью свойств Width, Height, Left и Top.

Заменим одну кнопку, которая отвечала за старт и остановку таймера, двумя:

var

btnSrart, btnStop : ButtonABC;

//КНОПКИ

btnSrart := new ButtonABC(10, 148, 140, 30, 'Запускаем таймер', clMoneyGreen);

//процедура - обработчик: btnSrart.OnClick := btnSrart_OnClick;

btnStop := new ButtonABC(170, 148, 140, 30, 'Остановить таймер', clMoneyGreen); //процедура - обработчик:

btnStop.OnClick := btnStop_OnClick;

Пока таймер не запушен, правая кнопка лишняя. Уберем правую кнопку:

btnStop.Visible := false;

Для этого используем свойство Visible, которое есть у кнопок. Если оно равняется false, то кнопка исчезает с экрана, если true, то снова появляется.

С двумя кнопками процедуры – обработчики стали проще:

procedure btnSrart_OnClick; begin

btnSrart.Visible := false; btnStop.Visible := true;

_timer.Start(); end;

procedure btnStop_OnClick; begin

btnStop.Visible := false; btnSrart.Visible := true; _timer.Stop();

end;

полный код программы

Билет №15. Машинная графика. Методы анимации.

Компьютерная анимация — вид анимации, создаваемый при помощи компьютера. На сегодня получила широкое применение как в области развлечений, так и в производственной, научной и деловой сферах. Являясь производной от компьютерной графики, анимация наследует те же способы создания изображений:векторный,растровый,фрактальный,3d.

По принципу анимирования можно выделить несколько видов компьютерной анимации.

1)Анимация по ключевым кадрам

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

2) Запись движения Данные анимации записываются специальным оборудованием с реально двигающихся

объектов и переносятся на их имитацию в компьютере. Распространенный пример такой техники — Захват движений. Актеры в специальных костюмах с датчиками, совершают перемещения по студии, а их движение записывается камерами и анализируется специальным программным обеспечением. Итоговые данные о перемещении суставов и конечностей актеров применяют к трехмерным скелетам виртуальных персонажей, чем добиваются высокого уровня достоверности их движения.

3) Процедуральная анимация Такая анимация полностью или частично рассчитывается компьютером. Сюда можно включить следующие её виды:

Симуляция физического взаимодействия твердых тел Имитация движения систем частиц, жидкостей и газов Имитация взаимодействия мягких тел (ткани, волос)

Расчет движения иерархической структуры связей (скелета персонажа) под внешним воздействием Имитация автономного (самостоятельного) движения персонажа

4)Программы для создания анимации с помощью цифрового фотоаппарата Программное обеспечение, позволяющее задействовать цифровой фотоаппарат для съемки анимации, применяется также часто, как и, ставшие привычными, 3D или 2D пакеты. Любая программа такого типа обеспечивает управление цифровым фотоаппаратом через компьютер и работу с полученными кадрами.

Графические возможности Delphi. Canvas.

Canvas обеспечивает пространство (холст, канву) для создания, хранения и модификации графических объектов. Canvas является основой графической подсистемы Delphi. Канва обеспечивает:

ØЗагрузку и хранение графических изображений

ØСоздание новых и изменение хранимых изображений с помощью пера, кисти, шрифта

ØРисование и закраску различных фигур, линий, текстов

ØКомбинирование различных изображений

Основные методы Canvas Arc

Рисует дугу окружности или эллипса

Arc(x1,y1,x2,y2,x3,y3,x4,y4: Integer) Chord

Рисует заполненную замкнутую фигуру, ограниченную дугой окружности или эллипса и хордой

Chord (x1,y1,x2,y2,x3,y3,x4,y4:Integer); Draw

Рисует графическое изображение в указанную позицию канвы

Draw (x,y:Integer;Graphic:TGraphic); DrawFocusRect

Рисует изображение прямоугольника в виде, используемом для отображения рамки фокуса, операцией XOR

DrawFocusRect (const Rect:TRect); Ellipse

Рисует заполненную окружность или эллипс

Ellipse (x1,y1,x2,y2:Integer); FillRect

Заполняет указанный прямоугольник канвы, используя текущее значение Brush. FillRect(const: TRect);

FloodFill

Закрашивает текущей кистью замкнутую область канвы, определенным цветом.

Type TFillStyle = (fsSurfase, fsBorder);

и т.д)

Билет №16. Машинная графика. Метод canvas в DELPHI и JAWA SCRIPT.

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

В работе с графикой в Delphi, у вас в распоряжении находится канва(холст, а точнее свойство Canvas Delphi компонентов), кисть(свойство Brush), карандаш(свойство Pen) компонента на которым мы собираемся рисовать. У Pen и Brush есть свойство Color(цвет) и Style(стиль). Чтоб получить доступ к шрифтам, предоставлено свойство холста(Canvas) Font.

Свойства объекта Pen(Карандаш)

 

 

 

Свойство

 

Описание

 

 

 

Color

 

Цвет линии

 

 

 

Width

 

Толщина линии(задается в пикселах)

 

 

 

 

 

Вид линии: psSolid ― сплошная; psDash ― пунктирная, длинные штрихи; psDot - пунктирная,

 

 

короткие штрихи; psDashDot ― пунктирная, с чередованием длинного и короткого штрихов;

Style

 

psDashDotDot ― пунктирная с чередованием одного длинного и двух коротких штрихов;

 

 

psClear ― линия не отображается(используется если не надо изображать границу области,

 

 

например прямоугольника)

 

 

 

Свойства объекта Brush(Кисть)

 

 

 

Свойство

 

Описание

 

 

 

Color

 

Цвет закраски замкнутой области.

 

 

 

 

 

 

 

 

Стиль закраски области:― сплошная заливка; штриховка: bsHorizontal―горизонтальная;

Style

 

bsVertical―вертикальная; bsFDiagonal―диагональная с наклоном линии вперед; bsBDiagonal

 

 

диагональная с наклоном линии назад; bsCross―диагональная клетка.

 

 

 

Основные свойства класса TFont

Свойство Определяет

 

Name

 

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

 

 

название шрифта, например Arial.

 

 

 

 

 

 

 

 

Size

 

Размер шрифта

 

 

 

 

 

 

 

Стиль начертания символов. Задается с помощью констант: fsBold(полужирный),

 

 

 

fsItalic(курсив), fsUnderline(подчеркнутый), fsStrikeOut(перечеркнутый).

 

Style

 

Свойство Style является множеством, что позволяет комбинировать необходимые стили.

 

 

 

Например, инструкция, которая устанавливает стиль "полужирный курсив", выглдит так:

 

 

 

Font.Style := [fsBold, fsItalic]

 

 

 

 

 

 

 

 

 

 

 

Color

 

Цвет символов. В качестве значения можно использовать константу типа TColor.

 

 

 

Конечно, не все компоненты в Delphi имеют эти свойства. На вкладке Additional расположен специализированный компонент TImage, специально предназначенный для рисования, но также свойство Canvas имеют, например, такие компоненты как ListBox, ComboBox, StringGrid, а также и сама Форма, которая размещает наши компоненты!

Холст для рисования Canvas, представляет собой перевернутую систему координат XOY, где О эта верхняя левая точка компонента или формы(смотря где мы рисуем).

Константы TColor

Основное свойство такого объекта как Canvas Delphi - Pixels[i, j] типа TColor, то есть это двумерный массив точек (пикселов), задаваемых своим цветом.

Рисование на канве происходит в момент присвоения какойлибо точке канвы заданного цвета. Каждому пикселу может быть присвоен любой доступный для Windows цвет.

Для стандартных цветов в Delphi определён набор текстовых констант. Увидеть его можно, открыв в Инспекторе Объектов свойство Color, например, той же Формы.

Свойства класса TCanvas

Цвет

 

Константа

 

 

 

Бирюзовый

 

clAqua

 

 

 

Черный

 

clBlack

 

 

 

Синий

 

clBlue

 

 

 

Ярко-розовый

 

clFuchsia

 

 

 

Зеленый

 

clGreen

 

 

 

Салатовый

 

cLime

 

 

 

Каштановый

 

clMaroon

 

 

 

Темно-синий

 

clNavy

 

 

 

Оливковый

 

clOlive

 

 

 

Фиолетовый

 

clPurple

 

 

 

Красный

 

clRed

 

 

 

Серебристый

 

clSilver

 

 

 

Зелено-

 

clTeal

голубой

 

 

 

 

 

 

Белый

 

clWhite

 

 

 

 

 

 

 

Свойство

 

Описание

 

 

 

 

 

Pen

 

Карандаш. Определяет цвет, стиль и толщинц линии, которую рисует, например метод

 

 

Lineto

 

 

 

 

 

 

 

 

PenPos

 

Положение(координаты) карандаша

 

 

 

 

 

 

 

 

 

Brush

 

Кисть. Определяет цвет и стиль закраски области, например прямоугольника, который

 

 

рисует метод Rectangle.

 

 

 

 

 

 

 

 

 

 

 

 

Font

 

Шрифт. Определяет шрифт, который используется для вывода текста, например

 

 

методом TextOut.

 

 

 

 

 

 

 

 

Билет №17. Машинная графика. Основные функции в графическом редакторе PAINT.

Основные функции Microsoft Paint

Этот редактор является одним из самых простых графических редакторов в среде MS Windows. Paint (в переводе с английского означает «краска») представляет собой простой однооконный редактор растровой графики, который, тем не менее, позволяет создать достаточно сложный рисунок.

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

Доступны и некоторые операции преобразования рисунка, а именно: зеркальное отображение относительно горизонтальной и вертикальной оси, инвертирование и замена цветов, сжатие, растяжение и наклон. Однако в Paint совершенно отсутствуют разного рода эффекты и фильтры. Кроме того, этот редактор поддерживает всего несколько форматов файлов.

Основные операции с выделенным фрагментом:

1.Переместить - навести мышь внутрь фрагмента и, удерживая левую кнопку мыши, переместить мышь;

2.Скопировать - так же как переместить, но удерживая клавишу Ctrl;

3.Получить шлейф - так же как переместить, но удерживая клавишу Shift;

4.Изменить размер - навести мышь на точку в углу фрагмента или в центре каждой стороны и перетащить;

5.Отразить/Повернуть;

6.Растянуть/Наклонить;

7.Обратить цвета;

8.Очистить.

Билет №18. Машинная графика. Представление куба. Преобразования куба: повороты.

Билет №19. Машинная графика. Представление куба. Преобразования куба: перемещение.

Билет №20. Машинная графика. Представление куба. Преобразования куба: изменение размера.

Билет №21. Машинная графика. Представление системы кубов.

Билет №22. База данных. Представление текстового файла «абитуриент». Ввод данных с клавиатуры и построчный ввод данных в файл:

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

========================================================================

КОНСОЛЬНОЕ ПРИЛОЖЕНИЕ. Обзор проекта ТИПИС 22

========================================================================

Это приложение ТИПИС 22 создано автоматически с помощью мастера приложений.

Здесь приведены краткие сведения о содержимом каждого из файлов, использованных при создании приложения ТИПИС 22.

ТИПИС 22.vcxproj

Основной файл проекта VC++, автоматически создаваемый с помощью мастера приложений.

Он содержит данные о версии языка Visual C++, использованной для создания файла, а также сведения о платформах, настройках и свойствах проекта, выбранных с помощью мастера приложений.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]