- Учителю
- Разработка практических заданий к урокам по теме: Графика в Turbo Pascal
Разработка практических заданий к урокам по теме: Графика в Turbo Pascal
|
|
|
МБОУ СОШ № 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
Приложение - Диск
Содержание диска:
1. Примеры программ на паскале, по теме «Работа с графикой»:
HOUSE.PAS - программа «День, ночь»
SEA.PAS - игра «Морской бой»
PUSHKA.PAS - игра «Осада замка»
TANK.PAS - логическая игра «Танк»
TIR.PAS - работа с «мышью» в графике на примере игры «Тир».
HOCKEY.PAS - разработка игры «Хоккей».
18
Программы с пропусками фрагментов кода (нужное добавить):
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.
17
Цели занятий:
-
дидактические:
- закрепление пройденного материала;
- обобщение и систематизация знаний о среде программирования Паскаль;
- освоение приемов построения алгоритмов и их программирование на языке Turbo Pascal; -
воспитательные:
- формирование мировоззрения у учащихся;
- формирование мотивации к изучению раздела информатики "Основы алгоритмизации и программирования";
- формирование чувства коллективизма, дружбы; -
развивающие:
- развитие логического мышления;
- развитие навыков работы с системой программирования.
Межпредметные связи: связь с алгеброй и геометрией.
Внутрипредметные связи: связь с разделами геометрии, процедуры, функции.
Обеспечение занятий: компьютер + большой экран, карточки, раздаточный материал с заданиями на закрепление, интерфейс среды программирования Turbo Pascal.
Учащиеся должны знать:
-
особенности среды Turbo Pascal;
-
особенности работы в графическом режиме GRAPH;
-
стандартные процедуры и функции модуля CRT;
-
стандартные процедуры и функции модуля GRAPH.
Учащиеся должны уметь:
-
производить необходимые действия с программой;
-
работать в графическом режиме;
-
правильно применять стандартные процедуры и функции модуля CRT;
-
2правильно применять стандартные процедуры и функции модуля GRAPH.
Понятие графического адаптера
Аппаратная поддержка графики персонального компьютера обеспечивается двумя основными модулями: видеоадаптером и видеомонитором. Видеомонитор - это устройство, на котором появляется выводимый текст или графические изображения. Видеоадаптеры - это электронные устройства, управляемые собственным микропроцессором.
При работе с экраном в графическом режиме очень важным является то, что любая информация представляет собой совокупность пикселей. Каждый пиксель определяется своими координатами, т.е. положением относительно левого верхнего угла экрана. С помощью программ можно управлять светимостью и цветом любого пикселя, т.е. создавать любое изображение.
Рассмотрение работы в графическом режиме:
Для управления экраном в графическом режиме с помощью программ в Turbo Pascal существуют специальные графические процедуры и функции. Описание этих процедур и функций содержится в специальном библиотечном модуле GRAPH.
Запуск графической системы. Для запуска графической системы необходимо сделать следующее:
-
Подключить модуль GRAPH - библиотеку графических процедур: uses graph;
-
Установить графический режим с помощью двух переменных:
var DriverVar, ModeVar: integer;
begin
DriverVar:=Detect;
InitGraph(DriverVar, ModeVar,'\TP\GRAPH');
3С этого момента все графические средства доступны пользователю.
2) Разработка компьютерной игры "морской бой".
План разработки программы:
1. Создание интерфейса программы:
а). создание фона;
б). нарисовать корабль;
в). нарисовать орудие.
2. Копирование фрагментов (корабль, орудие).
3. Движение корабля.
4. Движение орудия.
5. Выстрел из орудия.
390
55
x
y
Цвета:
1 - синий
2 - зеленый
11 - голубой
орудие
корабль
16
IV. Закрепление основ работы в графике.
1) Создать по образцу «Узор»
а)
б)
15
Процедуры и функции модуля 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; "">Строит параллелепипед, используя текущий стиль и цвет. X1, Y1, X2, Y2 - координаты левого верхнего и правого нижнего углов передней грани; Glubina - ширина боковой грани (отсчитывается по горизонтали); Top - признак включения верхней грани (если True - верхняя грань вычерчивается, False - не вычерчивается).
Circle (X, Y: Integer; R: word)
Рисует текущим цветом окружность радиуса R с центром в точке (X, Y).
ClearDevice
Очищает графический экран, закрашивает его в цвет фона.
ClearViewPort
Очищает выделенное графическое окно, закрашивает его в цвет фона.
CloseGraph
Закрывает графический режим, т. е. освобождает память, распределенную под драйверы графики и файлы шрифтов, и восстанавливает текстовый режим работы экрана.
4
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)
5Выводит точку цветом Color с координатами X, Y.
5) День, ночь. По небу движется круг (Солнце, Луна) и при достижении правого края экрана идет смена цветов графических объектов (времени суток).
День: Солнце - желтый, небо - голубое, земля - светло-зеленый, окно - черный.
Ночь: Луна - белый, небо - черный, земля - темно-зеленый, окно - желтый.
Подсказка: использовать код программы из задания III(2) движение круга от левой части экрана до правой.
14
4) Графическое меню. При нажатии на клавиатуре одной из цифр, появляется соответствующая фигура на экране.
1 -
2 -
3 -
1
2
3
Фрагмент программы:
Uses Graph, CRT;
Var Ch: Char; {переменная для хранения кода нажатой клавиши}
- - - - - - - - - - - - -
Repeat
Ch:= ReadKey;
Until Ch in ['1'..'3'];
If Ch = '1' Then {Построение соответствующей фигуры}
- - - - - - - - - - - - - -
13Дополнительное задание: добавить четвертую кнопку для обработки и назвать ее «Выход». Программу зациклить и добавить фрагмент кода для очистки экрана от старой фигуры.
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).
6
Пример использования процедур модуля 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;
7CloseGraph;
End.
III. Анимация в графике. Задания на движение (изменение), какого либо графического предмета на экране монитора.
1) Поворот линии с оставлением следа.
Подсказка:
FOR I:=1 TO 210 DO
LINE(640 - I*3, 0, I*3, 480);
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;
12
7) Всю область экрана заполнить кружками, радиуса R=10. Потребуется использование цикла и функции выдающей случайное число (Random).
(за основу можно взять вывод точек «звездное небо» из примера использования процедур модуля GRAPH).
8) Построить пирамиду (вид сверху). Для решения используется цикл и построение закрашенного прямоугольника:
SetFillStyle(1, Random(6)+10);
Bar(I*10, I*10, 640 - I*10, 480 - I*10);
11
I. Основы работы с графикой. Задания на построения основных графических элементов и ориентирование в системе координат.
1) Разбить экран на 4 части и в каждой вывести свою фигуру.
2) Создать составную фигуру «Узор».
3) Создать сложную фигуру «Цветок».
8
II. Дополнительные возможности графики. Дальнейшее изучение возможностей графики в Турбо Паскале.
1) Создать овал и закрасить область экрана внутри фигуры и с наружи, использовать разные цвета закраски.
закрасить
2) Построить «бублик» и закрасить внутреннюю область желтым цветом.
закрасить
3) Разбить экран на 3 части и в каждой вывести соответствующий текст.
9
2002
2003
2004
20054) Создать столбчатую диаграмму и разместить внизу года.
X
Y5) Схематически изобразить график функции.
106) Построить фрагмент шахматной доски.