Графика в Турбо Паскаль.

Тема урока: Графика в Турбо Паскаль.

Цели занятия:
дидактическая:
– закрепление пройденного материала;
– обобщение и систематизация знаний о среде программирования Паскаль;
– освоение приемов построения простых вычислительных алгоритмов и их программирование на языке Turbo Pascal;
воспитательная:
– формирование мировоззрения учеников;
– формирование мотивации к изучению предмета "Основы алгоритмизации и программирования”;
– формирование чувства коллективизма, дружбы;
развивающая:
– развитие логического мышления;
– развитие навыков работы с системой программирования с использованием модуля Graph.
Тип урока: изучение нового материала.
Оборудование: компьютер + большой экран, интерфейс среды программирования Turbo Pascal.
Основная литература:
Гусева.А.И. Учимся информатике: задачи и методы их решения. – М.: Диалог – МИФИ, 2001.
Шауцукова Л.З. Информатика: –М.: Просвещение, 2003.
Информатика: учебник Под ред. Н.В. Макаровой
Правильный многоугольник. /Информатика. Еженедельное приложение к газете "ПЕРВОЕ СЕНТЯБРЯ”. – 1998. № 30
Требования к результатам усвоения учебного материала.
Ученики должны знать: 
•    особенности среды Turbo Pascal;
•    особенности работы в графическом режиме CRAPH;
•    стандартные процедуры и функции модуля CRT;
•    стандартные процедуры и функции модуля CRAPH.
Ученики должны уметь:
•    производить необходимые действия с программой;
•    работать в графическом режиме;
•    правильно применять стандартные процедуры и функции модуля CRT;
•    правильно применять стандартные процедуры и функции модуля CRAPH.
Ход урока.
1. Организационный момент.
Приветствие. Проверка присутствующих. Постановка цели. Формирование мотивации к изучению темы.
2. Изучение нового материала.
Вступительное слово учителя. Понятие графического редактора в Турбо Паскаль.
Аппаратная поддержка графики персонального компьютера обеспечивается двумя основными модулями: видеоадаптером и видеомонитором. Видеомонитор – это устройство, на котором появляется выводимый текст или графические изображения. Видеоадаптерыэто электронные устройства, управляемые собственным микропроцессором.
При работе с экраном в графическом режиме очень важным является то, что любая информация представляет собой совокупность пикселей. Каждый пиксель определяется своими координатами, т.е. положением относительно левого верхнего угла экрана. С помощью программ можно управлять светимостью и цветом любого пикселя, т.е. создавать любое изображение.
Графический режим ПК существенно отличается от текстового как по принципам функционирования, так и по возможностям.
Графика применяется практически во всех серьезных программных разработках, так как позволяет увидеть результаты расчетов в виде чертежей, графиков, иллюстраций в движении.
Подключение графической библиотеки при программировании
в среде Turbo Pascal  производится оператором: Uses Graph;
Переход из текстового режима к графическому (инициализация графики) осуществляется оператором: InitGraph (Gd, Gm, 'way');
 Где:
    Gd  - имя графического драйвера (параметр-переменная),
    Gm - номер графического режима монитора (параметр-переменная);
    'way' - дорожка DOS к файлам с графическими драйверами.
Обычно драйверы подключаются в режиме автоопределения используемого монитора ПК. Для этого перед инициализацией графики задается Gd:=Detect; или Gd:=0;. В этом случае по умолчанию устанавливается режим с наибольшим числом точек на экране, а значение параметра Gm игнорируется. Номер наибольшего режима для текущего драйвера возвращает функция GetMaxMode;.
Разрешающую способность для текущего графического режима можно определить функциями, возвращающими максимальные значения координат экрана:
    GetMaxX; - по оси Х,
    GetMaxY; - по оси Y.
Для возврата из графического режима в текстовый можно
 использовать операторы:
    CloseGraph;  - полное прекращение работы графической системы,
    RestoreCrtMode; - переключение в текстовый режим с возможностью возврата к текущим установкам графического режима.
После инициализации графического режима экран очищается и можно
использовать процедуры рисования.
    SetBkColor (N); - установить цвет N  для пикселов фона. По умолчанию установлен  черный цвет фона.
    Setcolor (N); - установить цвет N для выводимых линий. По умолчанию  установлен  белый цвет линий.
    PutPixel (X, Y, N); - высветить цветом N пиксел с координатами X, Y
    FloodFill (X, Y, N) - заполнение замкнутой области с границей цвета N.
    GetPixel (X, Y); - функция возвращает цвет пикселя с координатами X, Y.

Цветовая шкала

Цвет                                         Код
Black- черный                           0
Blue - сини                                 1
Green- зеленый                          2
Cyan-бирюзовый                       3
Red-красный                              4
Magenta-малиновый                  5
Brown-коричневый                    6
LightGray-светло-серый            7
DarkGray-темно-серый              8
LightBlue- ярко-голубой            9
LightGreen-ярко-зеленый          10
LightCyan-ярко-бирюзовый      11
LightRed-ярко-красный             12
LightMagenta-ярко-малиновый   13
Yellow-желтый                             14
White-белый                                    15

Пример1:
Программа которая выводит на экран «Звездное небо».
uses Graph;
      var   i, Gd, Gm: Integer;
   BEGIN
      Gd:=VGA; Gm:=VGAHi; InitGraph (Gd,Gm,'..\bgi');
      If  GraphResult=grOk
         then  begin
                  For i:=0 to 1000  do
    PutPixel (random(640),random(480),random(15)+1);
                  ReadLn
               end
   END.
    Circle (X, Y, R); - построить окружность с центром X,  Y и радиусом R.
    Line (x1, y1, x2, y2); - построить отрезок прямой линии от точки с координатами x1, y1 к  точке с координатами x2, y2.
    Rectangle (x1, y1, x2, y2); - построить прямоугольник с левым верхним углом в точке с координатами x1, y1 и правым нижним углом  в  точке с координатами x2, y2 (стороны параллельны краям экрана)
Пример2:
Программа которая выводит различные незаполненные фигуры (окружности).
uses Graph;
      const CenterX=320; CenterY=240;
      var   i, Gd, Gm: Integer;
BEGIN
      Gd:=VGA; Gm:=VGAHi;
      InitGraph (Gd,Gm,'..\bgi');
      If  GraphResult=grOk then 
                  For i:=0 to 23  do
                  Circle (CenterX,CenterY,i*10);
END.

Ряд графических процедур выполняет построение заполненных фигур - фигур с замкнутым  контуром, автоматически заполняемых сразу после построения :
    SetFillStyle(P, N); - процедура установки орнамента Р=0,1, .., 12 и цвета с номером
N для заполняемых фигур.
o    Р=0 -  сплошное заполнение цветом фона,
o    Р=1 -  сплошное заполнение цветом с номером N, 
o    Р=2..11 - стандартный набор орнаментов BGI,
o    Р=12 - орнамент и цвет определяет пользователь.
    Bar (x1, y1, x2, y2);  - построить заполненный прямоугольник с заданными
координатами левого верхнего (x1,y1) и правого нижнего (x2,y2) углов.
    Bar3d  (x1, y1, x2, y2, d, t);   - построить параллелепипед с заполненной передней
гранью. Координаты углов (x1,y1), (x2,y2), глубина d. Переменная t типа boolean задает вывод верхней грани. При t=TopOn верхняя  грань  показывается, (true) t=TopOff (false) - нет.
    FillEllipse (X, Y, Rx, Ry);   - построить заполненный эллипс с центром в точке (X,Y)
и радиусами (полуосями) Rx - по горизонтали, Ry - по вертикали.
    Sector(x,y,a1,a2,Rx,Ry); - построить заполненный сектор эллипса. a1 и a2 начальный и конечный углы (в) градусах, отсчитываемые против часовой стрелки относительно направления оси X.
    PieSlice(x, y, a1,a2,R); - построить заполненный сектор круга с центром в точке
(x,y) и радиусом R.
    FillPoly (N, M); - заполнить произвольную плоскую фигуру с границей, описанной
массивом  точек, N - число точек границы.
3. Практическое задание.
Нарисовать паровоз, который изображен на слайде(7).
 
Program paravozzz;
uses crt, graph;
procedure paravoz;
begin
setfillstyle(1,4);
bar3d(100,280,280,380,25,true);
setfillstyle(1,5);
bar3d(280,180,400,380,25,true);
setcolor(1);
setfillstyle(1,yellow);
bar3d(300,200,380,260,0,false);
setfillstyle(1,12);
bar3d(120,300,260,360,0,false);
rectangle(300,285,380,370);
end;

procedure koleso;
begin
x:=160;
for i:=1 to 3 do
begin
setfillstyle(1,1);
fillellipse(x,380,40,40);
setfillstyle(1,3);
fillellipse(x,380,30,30);
x:=x+100;
end;
end;
var gd,gm,i,x,y:integer;
begin
gd:=detect;
initgraph(gd,gm,'');
if graphresult<>grok then halt(1);
paravoz;
koleso;
readln; end.

4. Подведение итогов.
5. Контрольные вопросы и задания.
1. Как называется модуль, который подключает графический редактор?
2. Номер наибольшего режима для текущего драйвера возвращает функция… .
3.Что делает процедура: Line (x1, y1, x2, y2)?
4. Какая процедура строит параллелепипед с заполненной передней гранью?
5. Используя какой прием можно нарисовать «полумесяц»?
6. Нарисовать на экране треугольники при помощи цикла всеми возможными способами.
6. Домашнее задание.
1. Написать программу, чтобы на экране выводился фрагмент тетради в клетку, используя циклические операции.

Презентация к уроку
Категория: