|
|
|
МБОУ СОШ № 30
Разработка практических заданий
к урокам по теме:
Графика в Turbo Pascal
Из опыта работы учителя информатики
Мартынюк С. А.
Кострома – 2015
|
Содержание:
1. Требования к результатам усвоения
учебного материала.
|
2
|
2. Понятие графического адаптера.
|
3
|
|
|
3. Рассмотрение работы в
графическом режиме.
|
3
|
|
|
4. Процедуры
и функции модуля GRAPH.
|
4
|
|
|
5. Пример
использования процедур модуля GRAPH.
|
7
|
|
|
6. Пример
составления программы.
|
7
|
|
|
7. Разработка практических заданий к
урокам по темам:
|
|
I. Основы
работы с графикой
|
8
|
II. Дополнительные возможности графики.
|
9
|
III. Анимация в графике.
|
12
|
IV. Закрепление основ работы в графике.
|
15
|
|
|
8. Приложение – Диск.
|
18
|
|
|
|
Приложение
- Диск
Содержание диска:
1. Примеры программ на паскале, по теме
«Работа с графикой»:
HOUSE.PAS - программа
«День, ночь»
SEA.PAS - игра
«Морской бой»
PUSHKA.PAS – игра
«Осада замка»
TANK.PAS -
логическая игра «Танк»
TIR.PAS - работа с
«мышью» в графике на примере игры «Тир».
HOCKEY.PAS – разработка
игры «Хоккей».
|
Программы с пропусками фрагментов кода (нужное добавить):
Program Sea;
Uses CRT, GRAPH;
Var
P, P2 : Pointer;
Size : Word;
Ch : Char;
X,
U : Integer;
-----------------------
BEGIN
{подключение графики}
{создание фона}
{нарисовать корабль}
SIZE
:= ImageSize(45,45,85,80);
GetMem(P,
Size);
GetImage(45,45,85,80, PÙ);
{нарисовать орудие}
SIZE
:= ImageSize(300,370,345,400);
GetMem(P,
Size);
GetImage(300,370,345,400,
P2Ù);
X:=0;
U:=310;
REPEAT
X:=X+1;
if X>640 then
begin X:=0;
SetFillStyle(1,11); Bar(0, 0, 640, 55); end;
PutImage(X,45, PÙ, 0);
if KeyPressed then
begin
Ch := ReadKey;
if Ch = ‘a’ then U:=U -
10;
if Ch = ‘s’ then U:=U
+10;
if Ch = ‘ ’ then {имитация выстрела из орудия};
end;
PutImage(U, 370, P2Ù, 0);
UNTIL Ch = #27;
END.
|
|
|
Цели занятий:
·
дидактические:
– закрепление пройденного материала;
– обобщение и систематизация знаний о среде программирования Паскаль;
– освоение приемов построения алгоритмов и их программирование на языке Turbo
Pascal;
·
воспитательные:
– формирование мировоззрения у учащихся;
– формирование мотивации к изучению раздела информатики “Основы
алгоритмизации и программирования”;
– формирование чувства коллективизма, дружбы;
·
развивающие:
– развитие логического мышления;
– развитие навыков работы с системой программирования.
Межпредметные связи: связь с алгеброй и геометрией.
Внутрипредметные связи: связь с разделами геометрии, процедуры, функции.
Обеспечение занятий: компьютер + большой экран, карточки, раздаточный материал с
заданиями на закрепление, интерфейс среды программирования Turbo Pascal.
Учащиеся должны знать:
- особенности среды Turbo Pascal;
- особенности работы в графическом режиме GRAPH;
- стандартные процедуры и функции модуля
CRT;
- стандартные процедуры и функции модуля GRAPH.
Учащиеся должны уметь:
- производить необходимые действия с
программой;
- работать в графическом режиме;
- правильно применять стандартные процедуры
и функции модуля CRT;
-
правильно применять стандартные процедуры и функции
модуля GRAPH.
|
Понятие
графического адаптера
Аппаратная поддержка графики персонального компьютера
обеспечивается двумя основными модулями: видеоадаптером и видеомонитором. Видеомонитор
– это устройство, на котором появляется выводимый текст или графические
изображения. Видеоадаптеры – это электронные устройства, управляемые
собственным микропроцессором.
При работе с экраном в графическом режиме очень важным
является то, что любая информация представляет собой совокупность пикселей.
Каждый пиксель определяется своими координатами, т.е. положением относительно
левого верхнего угла экрана. С помощью программ можно управлять светимостью и
цветом любого пикселя, т.е. создавать любое изображение.
Рассмотрение
работы в графическом режиме:
Для
управления экраном в графическом режиме с помощью программ в Turbo Pascal
существуют специальные графические процедуры и функции. Описание этих
процедур и функций содержится в специальном библиотечном модуле GRAPH.
Запуск
графической системы. Для запуска графической системы необходимо сделать
следующее:
- Подключить
модуль GRAPH –
библиотеку графических процедур: uses graph;
- Установить
графический режим с помощью двух переменных:
var
DriverVar, ModeVar: integer;
begin
DriverVar:=Detect;
InitGraph(DriverVar, ModeVar,’\TP\GRAPH’);
С этого момента все графические средства
доступны пользователю.
|
|
|
2) Разработка компьютерной игры “морской
бой”.
План разработки
программы:
1. Создание
интерфейса программы:
а). создание
фона;
б). нарисовать
корабль;
в). нарисовать
орудие.
2. Копирование
фрагментов (корабль, орудие).
3. Движение
корабля.
4. Движение
орудия.
5. Выстрел из орудия.
Цвета:
1 - синий
2 - зеленый
11 - голубой
|
|
|
IV. Закрепление основ работы в графике.
1) Создать по образцу «Узор»
а)
б)
|
|
|
Процедуры
и функции модуля GRAPH
Процедуры
Arc (X,Y:Integer; U1, U2, R:Word)
Строит дугу окружности текущим цветом с
текущими параметрами линии. X, Y – координаты центра дуги; U1 – угол до
начальной точки дуги, отсчитываемый против часовой стрелки от горизонтальной
оси, направленной с лева на право; U2 – угол до конечной точки дуги,
отсчитываемый так же, как U1; R – радиус дуги.
Bar (X1, Y1, X2, Y2:Integer)
Строит прямоугольник, закрашенный текущим
цветом с использованием текущего стиля (орнамента, штриховки). X1, Y1, X2, Y2
– координаты левого верхнего и правого нижнего углов прямоугольника.
Bar3D (X1, Y1, X2, Y2:Integer; Glubina: Word;
Top:Boolean)
Строит параллелепипед, используя текущий
стиль и цвет. X1, Y1, X2, Y2 – координаты левого верхнего и правого нижнего
углов передней грани; Glubina – ширина боковой грани (отсчитывается по
горизонтали); Top – признак включения верхней грани (если True – верхняя
грань вычерчивается, False – не вычерчивается).
Circle (X, Y: Integer; R: word)
Рисует текущим цветом окружность радиуса
R с центром в точке (X, Y).
ClearDevice
Очищает графический экран, закрашивает
его в цвет фона.
ClearViewPort
Очищает выделенное графическое окно,
закрашивает его в цвет фона.
CloseGraph
Закрывает графический режим, т. е.
освобождает память, распределенную под драйверы графики и файлы шрифтов, и
восстанавливает текстовый режим работы экрана.
|
Ellipse (X, Y: Integer; U1, U2, XR, YR: Word)
Рисует дугу эллипса текущим цветом. X, Y
– координаты центра эллипса; U1, U2 – углы до начальной и конечной точек дуги
эллипса (см. процедуру Arc); XR, XY – горизонтальная и вертикальная полуоси
эллипса.
Fill Ellipse (X, Y: Integer; U1, U2, XR, YR: Word)
Рисунт заштрихованный эллипс, используя
X, Y как центр и XR, YR как горизонтальную и вертикальную полуоси эллипса.
FillPoly (N: Word; Var PolyPoints)
Рисует и штрихует многоугольник,
содержащий N вершин с координатами в поле PolyPoints.
FloodFill(X,Y:Integer; Color: Word)
Заливка цветом площадь от точки X,Y, ограниченную цветом Color.
InitGraph (Var Driver, Mode:Integer; Path: String)
Организует переход в графический режим. Переменные
Driver и Mode содержат тип
графического драйвера и его режим работы. Третий параметр определяет маршрут
поиска графического драйвера. Если строка пустая (т.е. равна ’’), считается,
что драйвер находится в текущем каталоге.
Line (X1, Y1, X2, Y2:Integer)
Рисует линию от точки X1, Y1, до точки
X2, Y2.
LineTo (X,Y:Integer)
Рисует линию от текущего указателя к
точке X, Y.
MoveTo (X,Y:Integer)
Смещает текущий указатель к точке X, Y.
OutTextXY (X,Y:Integer; TextString: String)
Выводит текст в заданное место экрана.
PieSlice (X,Y:Integer; U1, U2, Radius: Word)
Строит сектор круга, закрашенный текущей
штриховкой и цветом заполнения. X, Y – координаты центра сектора круга; U1 и
U2 – начальный и конечный углы сектора, отсчитываемые против часовой стрелки
от горизонтальной оси, направленной в право; Radius – радиус сектора.
PutPixel (X,Y:Integer; Color: Word)
Выводит точку цветом Color с координатами X, Y.
|
|
|
5) День, ночь. По небу движется круг (Солнце,
Луна) и при достижении правого края экрана идет смена цветов графических
объектов (времени суток).
День: Солнце – желтый, небо – голубое, земля
– светло-зеленый, окно – черный.
Ночь: Луна – белый, небо – черный, земля –
темно-зеленый, окно – желтый.
Подсказка: использовать код программы из
задания III(2) движение круга от левой части экрана до
правой.
|
4) Графическое меню. При нажатии на
клавиатуре одной из цифр, появляется соответствующая фигура на экране.
Фрагмент программы:
Uses Graph, CRT;
Var Ch: Char; {переменная
для хранения кода нажатой клавиши}
- - - - - - - - - - - - -
Repeat
Ch:= ReadKey;
Until Ch in [‘1’..’3’];
If Ch = ‘1’ Then {Построение
соответствующей фигуры}
- - - - - - - - - - - - - -
Дополнительное задание: добавить четвертую кнопку для
обработки и назвать ее «Выход». Программу зациклить и добавить фрагмент кода
для очистки экрана от старой фигуры.
|
|
|
Rectangle (X1, Y1, X2, Y2)
Рисует контур прямоугольника, используя
текущий цвет и тип линий. X1, Y1 – координаты левого верхнего угла
прямоугольника; X2, Y2 - координаты левого правого нижнего угла
прямоугольника.
Sector (X, Y: Integer; U1, U2, XR, YR: Word)
Рисует и штрихует сектор эллипса радиусом
XR, YR с центром в X, Y от начального угла U1 к конечному углу U2.
SetBkColor (Color: Word)
Устанавливает цвет фона.
SetColor (Color: Word)
Устанавливает основной цвет рисования.
SetFillStyle (Pattern, Color: Word)
Устанавливает образец штриховки и цвета.
SetLineStyle (LineStyle, Pattern, Thickness: Word)
Устанавливает толщину и цвет линии.
SetTextStyle (Font, Direction, CharSize: Word)
Устанавливает текущий шрифт, направление
(горизонтальное или вертикальное) и размер текста.
SetViewPort (X1, Y1, X2, Y2:Integer; ClipOn:
Boolean)
Устанавливает прямоугольное окно на
графическом экране. Параметр ClipOn определяет “отсечку” элементов
изображения, не умещающихся в окне.
Функции
GetMaxX и GetMaxY
Возвращает значения максимальных
координат экрана в текущем режиме работы соответственно по горизонталь и
вертикали.
GraphResult
Возвращает значение GrOk, соответствующее
коду 0, если все графические операции программы выполнились без ошибок, или
возвращает числовой код ошибки (от -1 до -14).
|
Пример
использования процедур модуля GRAPH
Вывод красной точки:
PutPixel(10,10,LightRed);
Вывод желтой
точки: PutPixel(60,10,Yellow);
Зеленая линия: SetColor(Green);
Line(10,40,50,40);
Очистка
экрана: ClearDevice;
Вывод текста
красным цветом:
SetColor(LightRed);
OutTextXY(20,20,’Текст на экране’);
Вывод точек “звездное небо”:
FOR I:=1 to 30000 DO
PutPixel(Random(600), Random(300), Random(16));
Построение фиолетовой рамки:
SetColor(LightMagenta);
Rectangle(330, 70, 100, 160);
Вывод
закрашенного прямоугольника:
SetFillStyle(1, LightRed); Bar(420, 70,
490, 150);
Вывод трехмерного
прямоугольника:
Bar3D(510,
70, 580, 150, 10, true);
Построение
окружности: Circle(400, 120, 30);
Построение
эллипса: Ellipse(540, 200, 0, 360, 40, 30);
Закраска области экрана:
SetFillStyle(1,
LightMagenta); FloodFill(520, 200, White);
Пример составления программы
Program Primer;
uses graph;
var DriverVar, ModeVar: integer;
begin
DriverVar:=Detect;
InitGraph(DriverVar, ModeVar,’\TP\GRAPH’);
SetColor
(Yellow); Rectangle(200,
100, 400, 300);
Circle(300, 200, 100);
SetFillStyle(1, LightMagenta);
FloodFill(300, 200, Yellow);
Readln;
CloseGraph;
End.
|
|
|
III. Анимация в графике. Задания на
движение (изменение), какого либо графического предмета на экране монитора.
1) Поворот линии с оставлением следа.
2) Движение круга от левой части экрана до
правой.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Подсказка:
FOR I:=1 TO 640 DO BEGIN
SETCOLOR(15); CIRCLE(I, 200, 20);
SETCOLOR(0); CIRCLE(I, 200, 20);
END;
|
|
|
3) Движение прямоугольника по экрану. При
столкновении со стеной смена направления движения на противоположное.
Подсказка:
BAR(600,0,640,480);
REPEAT
SETFILLSTYLE(1,0);
BAR(X, 210, X+10, 200);
C:=GETPIXEL(X+12, 200);
IF C=15 THEN P:=1;
IF P=0 THEN X:=X+1 ELSE
X:=X-1;
SETFILLSTYLE(1,15);
BAR(X, 210, X+10, 200);
UNTIL X< -1;
|
|
|
7) Всю область экрана заполнить кружками, радиуса
R=10. Потребуется использование цикла и функции выдающей
случайное число (Random).
(за основу можно взять вывод точек «звездное
небо» из примера использования процедур модуля
GRAPH).
8) Построить пирамиду (вид сверху). Для
решения используется цикл и построение закрашенного прямоугольника:
SetFillStyle(1, Random(6)+10);
Bar(I*10, I*10, 640 - I*10, 480 - I*10);
|
|
|
I. Основы
работы с графикой. Задания на построения основных графических элементов и
ориентирование в системе координат.
1) Разбить
экран на 4 части и в каждой вывести свою фигуру.
2) Создать составную фигуру «Узор».
3) Создать сложную фигуру «Цветок».
|
II. Дополнительные возможности графики.
Дальнейшее изучение возможностей графики в Турбо Паскале.
1) Создать овал и закрасить область экрана
внутри фигуры и с наружи, использовать разные цвета закраски.
2) Построить «бублик» и закрасить внутреннюю
область желтым цветом.
3) Разбить экран на 3 части и в каждой
вывести соответствующий текст.
|
|
|
4) Создать столбчатую диаграмму и разместить внизу года.
5) Схематически изобразить
график функции.
6) Построить фрагмент
шахматной доски.
|
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.