Просмотреть!

Download Report

Transcript Просмотреть!

Практикум
по
графике
0011 0010 1010 1101 0001 0100 1011
1
2
4
PascalABC
Отличие между
Turbo Pascal и PascalАВС
Turbo Pascal
0011 0010 1010 1101 0001 0100 1011
PascalАВС
1
2
1. Включение по
библиотеки
умолчанию
графических процедур и функций
2. Инициализация графического
3. Закрытие графического
ВИДЕОрежима
по
умолчанию
ВИДЕОрежима
4. Графические
и к
Почти совпадают.
За помощьюпроцедуры
обращайтесь
функции.
справочной информации
данной программы
4
Местоположение команд графического модуля в
справочной системе программы PascalABC:
0011 0010 1010 1101 0001 0100 1011
1
2
4
Содержание модуля GraphABC
Модуль GraphABC содержит константы, типы,
процедуры, функции и классы для рисования в
графическом окне. Они подразделяются на следующие
группы:
Графические примитивы 
ПРИМЕЧАНИЕ:
Действия с цветом 
 -изложено
Действия с пером 
-изучить самостоятельно
Действия с кистью 
Действия со шрифтом 
Действия с рисунками: описатели 
Действия с рисунками: класс Picture 
Действия с графическим окном 
Задание режимов вывода 
0011 0010 1010 1101 0001 0100 1011
•
•
•
•
•
•
•
•
•
1
2
4
Шаблон графической
программы:
0011 0010 1010 1101 0001 0100 1011
Окно редактора
программы
Окно вывода
графического рисунка
1
2
4
SetWindowCaption(' '); или SetWindowTitle(' ');
Рассмотрим класс
графических примитивов модуля
GraphABC:
0011 0010 1010 1101 0001 0100 1011
MoveTo(x,y: integer);
Передвигает невидимое перо к точке с координатами (x,y); эта функция работает
в паре с функцией LineTo(x,y).
LineTo(x,y: integer);
Рисует отрезок от текущего положения пера до точки (x,y); координаты пера при
этом также становятся равными (x,y).
Line(x1,y1,x2,y2: integer);
Рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2).
Circle(x,y,r: integer);
Рисует окружность с центром в точке (x,y) и радиусом r.
Ellipse(x1,y1,x2,y2: integer);
Рисует эллипс, заданный своим описанным прямоугольником с координатами
противоположных вершин (x1,y1) и (x2,y2).
Rectangle(x1,y1,x2,y2: integer);
Рисует прямоугольник, заданный координатами противоположных вершин
(x1,y1) и (x2,y2).
1
2
4
Продолжение класса
графических примитивов модуля GraphABC:
RoundRect(x1,y1,x2,y2,w,h:
integer);
Рисует прямоугольник со скругленными краями; (x1,y1) и (x2,y2) задают
пару противоположных вершин, а w и h – ширину и высоту эллипса,
используемого для скругления краев.
0011 0010 1010 1101 0001 0100 1011
Arc(x,y,r,a1,a2: integer);
Рисует дугу окружности с центром в точке (x,y) и радиусом r,
заключенной между двумя лучами, образующими углы a1 и a2 с осью
OX (a1 и a2 – вещественные, задаются в градусах и отсчитываются
против часовой стрелки).
Pie(x,y,r,a1,a2: integer);
Рисует сектор окружности, ограниченный дугой (параметры процедуры
имеют тот же смысл, что и в процедуре Arc).
TextOut(x,y: integer; s:
string);
Выводит строку s в позицию (x,y) (точка (x,y) задает верхний левый угол
прямоугольника, который будет содержать текст из строки s).
FloodFill(x,y,color: integer);
Заливает область одного цвета цветом color, начиная с точки (x,y).
FillRect(x1,y1,x2,y2: integer);
Заливает прямоугольник, заданный координатами противоположных
вершин (x1,y1) и (x2,y2), цветом текущей кисти.
1
2
4
Для просмотра полного перечня класса графических
примитивов модуля GraphABC нажмите эту кнопку:
Разбор примеров:
Задача №1. Нарисуйте треугольник из
0011 0010 1010 1101 0001 0100 1011
отрезков.
Текст программы:
Результат выполнения
программы:
1
Задача №2. Нарисуйте часть
окружности:
2
4
Практическая работа на
компьютере:
0011 0010 1010 1101 0001 0100 1011
Задание №1. Создайте рисунок:
Задание №2. Создайте рисунок:
2
4
Задание №3*. Создайте рисунок:
Просмотр текста программ:
1
Рассмотрим класс
цветовых констант и функций для
работы
со
цветом
0011 0010 1010 1101 0001 0100 1011
в модуле GraphABC:
Модуль GraphABC содержит константы
и функции для работы с цветами. Тип
ColorType, описывающий цвет, определен
следующим образом:
1
2
4
type ColorType=integer;
Продолжение изучения класса
цветовых констант и функций для работы со цветом
в модуле GraphABC:
0011 0010 1010 1101 0001 0100 1011
Стандартные цвета задаются символическими
константами:
clBlack – черный
clPurple – фиолетовый
clWhite – белый
clMaroon – темно-красный
clRed – красный
clNavy – темно-синий
clGreen – зеленый
clBrown – коричневый
clBlue – синий
clSkyBlue – голубой
clYellow – желтый
clCream – кремовый
clAqua – бирюзовый
clOlive – оливковый
clFuchsia – сиреневый
clTeal – сине-зеленый
clGray – темно-серый
clLime – ярко-зеленый
clMoneyGreen – цвет зеленых денег
clLtGray – светло-серый
clDkGray – темно-серый
clMedGray – серый
clSilver – серебряный
1
2
4
Разбор примеров:
Задача №1. Создайте рисунок:
0011 0010 1010 1101 0001 0100 1011
Текст программы:
Задача №2. Создайте рисунок:
Задача №3. Создайте рисунок:
1
2
4
Практическая работа на
компьютере:
0011 0010 1010 1101 0001 0100 1011
Задание №1. Создайте рисунок:
Задание №2. Создайте рисунок:
2
4
Задание №3*. Создайте рисунок:
Просмотр текста программ:
1
Рассмотрим класс действий с пером
в модуле GraphABC:
PenX: integer;
Возвращают текущие координаты пера.
PenY: 1010
integer;1101 0001 0100 1011
0011 0010
SetPenColor(color: integer);
Устанавливает цвет пера, задаваемый параметром color.
PenColor: integer;
Возвращает текущий цвет пера
SetPenWidth(w: integer);
Устанавливает ширину пера, равную w пикселам.
PenWidth: integer;
Возвращает текущую ширину пера
SetPenStyle(ps: integer);
Устанавливает стиль пера, задаваемый параметром ps.
PenStyle: integer;
Возвращает текущий стиль пера.
SetPenMode(m: integer);
Устанавливает режим пера, задаваемый параметром m.
PenMode: integer;
Возвращает текущий режим пера. Режим пера определяет,
как цвет пера взаимодействует с цветом поверхности.
1
2
4
Продолжение изучения действий с пером
в модуле GraphABC:
Стили пера задаются следующими
именованными константами:
0011 0010 1010 1101 0001 0100 1011
1
2
4
Режимы пера задаются следующими именованными
константами:
pmCopy
– обычный режим; при рисовании цвет поверхности заменяется цветом пера;
pmNot
– режим инвертирования; при рисовании цвет поверхности инвертируется
(становится негативным), а цвет пера при этом игнорируется.
Разбор примеров:
Задача №1. Создайте рисунок:
0011 0010 1010 1101 0001 0100 1011
Текст программы:
1
Задача №2. Создайте рисунок:
2
4
ПРИМЕЧАНИЕ: При изменении толщины линии
стиль пера изменить НЕЛЬЗЯ!
Практическая работа на
компьютере:
0011 0010 1010 1101 0001 0100 1011
Задание №1. Создайте рисунок:
Задание №2. Создайте рисунок:
2
4
Задание №3*. Создайте рисунок:
(программа должна состоять ровно из 3-х команд)
Просмотр текста программ:
1
Рассмотрим класс действий с кистью
в модуле GraphABC:
SetBrushColor(color:
Устанавливает
цвет кисти, задаваемый параметром color.
0011 0010
1010 1101 integer);
0001 0100
1011
BrushColor: integer;
Возвращает текущий цвет кисти.
SetBrushPicture(fname: string);
Устанавливает в качестве образца для закраски кистью
образец, хранящийся в файле fname, при этом текущий цвет
кисти при закраске игнорируется.
ClearBrushPicture;
Очищает рисунок-образец, выбранный для кисти.
SetBrushStyle(bs: integer);
Устанавливает стиль кисти, задаваемый параметром bs.
BrushStyle: integer;
Возвращает текущий стиль кисти.
1
2
4
Продолжение рассмотрения класса
действий с кистью модуле GraphABC:
0011 Стили
0010 1010
1101 0001
0100 1011
кисти
задаются
следующими
именованными
константами:
1
2
4
ПРИМЕЧАНИЕ: Стили кисти задаются для закраски
внутреннего содержимого фигур
Разбор примеров:
Задача №1. Создайте рисунок:
0011 0010 1010 1101 0001 0100 1011
Текст программы:
1
Задача №2. Создайте рисунок:
2
4
Практическая работа на
компьютере:
0011 0010 1010 1101 0001 0100 1011
Задание №1. Создайте рисунок:
Задание №2. Создайте рисунок:
Задание №3*. Создайте рисунок:
Просмотр текста программ:
1
2
4
Рассмотрим класс действий со шрифтом
в модуле GraphABC:
SetFontColor(color: integer);
Устанавливает цвет шрифта.
0011 0010
1010
1101 0001 0100
1011 текущий цвет шрифта.
FontColor:
integer;
Возвращает
SetFontSize(sz: integer);
Устанавливает размер шрифта в пунктах.
FontSize: integer;
Возвращает текущий размер шрифта в пунктах.
SetFontName(name: string);
Устанавливает наименование шрифта.
FontName: string;
Возвращает текущее наименование шрифта.
По умолчанию установлен шрифт, имеющий наименование MS Sans Serif.
Наиболее распространенные шрифты – это Times, Arial и Courier New.
Наименование шрифта можно набирать без учета регистра.
1
2
4
SetFontStyle(fs: integer);
Устанавливает стиль шрифта.
FontStyle: integer;
Возвращает текущий стиль шрифта.
TextWidth(s: string): integer;
Возвращает ширину строки s в пикселях при текущих настройках
шрифта.
TextHeight(s: string): integer;
Возвращает высоту строки s в пикселях при текущих настройках
шрифта.
Продолжение рассмотрения класса
действий со шрифтом в модуле
0011 0010 1010 1101 0001 0100
1011
GraphABC:
Стили шрифта задаются следующими именованными
константами:
2
fsNormal – обычный;
fsBold – жирный;
fsItalic – наклонный;
fsBoldItalic – жирный наклонный;
fsUnderline – подчеркнутый;
fsBoldUnderline – жирный подчеркнутый;
fsItalicUnderline – наклонный подчеркнутый;
fsBoldItalicUnderline – жирный наклонный подчеркнутый
1
4
Разбор примеров:
Задача №1. Создайте рисунок:
0011 Текст
0010 1010
1101 0001 0100 1011
программы:
1
Задача №2. Создайте рисунок:
2
4
Задача №3. Создайте рисунок:
Задача №4. Создайте рисунок:
Практическая работа на
компьютере:
0011 0010 1010 1101 0001 0100 1011
Задание №1. Создайте рисунок:
Задание №2. Создайте рисунок:
Задание №3*. Создайте рисунок:
(использовать команды работы с кистью)
Просмотр текста программ:
1
2
4
Рассмотрим класс действий с рисунками***
в модуле GraphABC:
Работа с рисунками в модуле GraphABC производится либо с
помощью описателей (целых чисел, однозначно определяющих
рисунок), либо с помощью объектов класса Picture (объекты
данного класса должны быть помещены в каталог \Media\Images\
для использования в программах). Работа с помощью описателей
позволяет манипулировать рисунками, используя обычные
процедуры и функции и не используя классы.
Рассмотрим только три процедуры действий с рисунком:
0011 0010 1010 1101 0001 0100 1011
1
2
4
LoadPicture(fname: string):
integer;
n:=LoadPicture(fname) – загружает рисунок из файла с именем fname в
оперативную память и возвращает описатель рисунка в целую
переменную n; если файл не найден, то возникает ошибка времени
выполнения. Загружать можно рисунки в формате .bmp, .jpg или .gif.
DrawPicture(n,x,y: integer);
Выводит рисунок с описателем n в позицию (x,y) графического окна.
DrawPicture(n,x,y,w,h: integer);
Выводит рисунок с описателем n в позицию (x,y) графического окна,
масштабируя его размеры к ширине w и высоте h. Если w<0, то рисунок
зеркально отражается относительно вертикальной прямой, проходящей
через x, если же h<0, то рисунок зеркально отражается относительно
горизонтальной прямой, проходящей через y.
Разбор примеров:
Задача №1. Создайте рисунок:
0011 Текст
0010 1010
1101 0001 0100 1011
программы:
Задача №2. Создайте рисунок:
1
2
4
Практическая работа на
компьютере:
Задание №1. Создайте рисунок:
0011 0010 1010 1101 0001 0100 1011
Задание №2. Создайте рисунок:
ПРИМЕЧАНИЕ: В каталоге Picture, на который
ссылается программа, на данный момент находятся
следующие файлы: target.jpeg; strawberry.png;
home2.png; home1.png; girl.bmp; demo.bmp;
computer.png; clock.png и др.
Просмотр текста программ:
1
2
4
Заключение:
В данном уроке мы рассмотрели применение отдельных
0011
0010 1010
0001 0100
1011
процедур
и 1101
функций
графического
модуля PascalABC при
работе с графическими примитивами и текстом, изменение
цвета, настройка и использование пера и кисти, а так же
использование в программах готовых графических файлов.
Не рассмотрены модули работы с графическим окном,
режимы вывода и класс Picture.
Предлагаю изучить их самостоятельно, если ВАМ это
надо.
И помните, что путь к вершине ПЕДАГОГИЧЕСКОГО
МАСТЕРСТВА лежит через поиск, самостоятельное изучение и
применение на уроках.
1
2
4
СПАСИБО ЗА ВНИМАНИЕ И ТЕРПЕНИЕ…