Разработка факультативного курса «Программирование графики» для старших классов

Автор работы: Пользователь скрыл имя, 16 Февраля 2011 в 11:14, курсовая работа

Описание работы

Цел работы:

Теоретически обосновать методы проведения факультативных курсов по информатике для старшей школы и разработать факультативный курс «Программирование графики» для старшей школы.

Задачи

•Изучить и проанализировать литературу по тематике курсовой работы;
•Определить понятийный аппарат факультативных курсов
•Выделить основные аспекты проведения факультативного курса «Программирование графики» для старшей школы;
•Выявить систему средств для проведения факультативного курса «Программирование графики» для старшей школы;
•Раскрыть теоретические основы факультативного курса «Программирование графики» для старшей школы;
•Разработать содержание факультативного курса «Программирование графики» для старшей школы;
•Подобрать и систематизировать задания для факультативного курса «Программирование графики» для старшей школы;

Содержание работы

Введение 3
Глава 1. Факультативные курсы по информатике для старшей школы 5
1.1. ПОНЯТИЙНЫЙ АППАРАТ ФАКУЛЬТАТИВНЫХ КУРСОВ 5
1.2. МЕТОДИКА ПРОВЕДЕНИЯ ФАКУЛЬТАТИВНЫХ КУРСОВ ПО ИНФОРМАТИКЕ ДЛЯ СТАРШИХ ШКОЛЬНИКОВ 7
1.3. СИСТЕМА СРЕДСТВ ДЛЯ ПРОВЕДЕНИЯ ФАКУЛЬТАТИВНЫХ КУРСОВ 9
Глава 2.Факультативный курс «Программирование графики» для старшей школы 10
2.1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПРОГРАММИРОВАНИЯ ГРАФИКИ 10
2.2. РАЗРАБОТКА СОДЕРЖАНИЯ ФАКУЛЬТАТИВНОГО КУРСА «ПРОГРАММИРОВАНИЕ ГРАФИКИ» ДЛЯ СТАРШЕЙ ШКОЛЫ 22
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА 22
ЦЕЛИ И ЗАДАЧИ 23
МЕТОДЫ ПРЕПОДАВАНИЯ (ВКЛЮЧАЯ ФОРМЫ ОРГАНИЗАЦИИ УЧЕБНЫХ ЗАНЯТИЙ) 25
СОДЕРЖАНИЕ ОБУЧЕНИЯ 25
2.3ПРИМЕРЫ ИНТЕРЕСНЫХ ЗАДАЧ ДЛЯ ФАКУЛЬТАТИВНОГО КУРСА «ПРОГРАММИРОВАНИЕ ГРАФИКИ» 30
Заключение 35
Список литературы 36

Файлы: 1 файл

курсовая Касрашвили Е.Д..doc

— 338.00 Кб (Скачать файл)

    Фон внутри эллипса совпадает с фоном  экрана. Чтобы создать закрашенный  эллипс, используется специальная процедура  FillEllipse (x, y: integer, Rx, Ry: integer). Закраска эллипса осуществляется с помощью процедуры SetFillStyle (a, b: word), где а – стиль закраски (таблица 4), b – цвет закраски (таблица 1)

Таблица 4

Константа Значение  Маска
EmptyFill 0 Заполнение  цветом фона
SolidFill 1 Заполнение  текущим цветом
LineFill 2 Заполнение  символами --, цвет – color
LtslashFill 3 Заполнение  символами // нормальной толщины, цвет – color
SlashFill 4 Заполнение  символами //  удвоенной толщины, цвет – color
BkslashFill 5 Заполнение  символами \\ удвоенной толщины, цвет – color
LtbkSlahFill 6 Заполнение  символами \\ нормальной толщины, цвет – color
HatchFill 7 Заполнение  вертикально-горизонтальной штриховкой тонкими линиями, цвет – color
XhatchFill 8 Заполнение  штриховкой крест-накрест по диагонали  «редкими» тонкими линиями, цвет – color
InterLeaveFill 9 Заполнение  штриховкой крест-накрест по диагонали  «частыми» тонкими линиями, цвет – color
WideDotFill 10 Заполнение  «редкими» точками 
CloseDotFill 11 Заполнение  «частыми» точками 
UserFill 12 Заполнение  по определенной пользователем маске заполнения, цвет – color

    Для построения секторов можно использовать следующие процедуры: PieSlice (x, y: integer, a, b, R: word), которая рисует и заполняет сектор круга. Координаты x, y – центр окружности, сектор рисуется от начального угла a до конечного угла b, а закрашивание происходит при использовании специальных процедур; Sector (x, y: integer, a, b, Rx, Ry: word), которая создает и заполняет сектор в эллипсе. Координаты x, y – центр, Rx, Ry – горизонтальный и вертикальный радиусы, и сектор вычерчивается от начального угла a до конечного угла b.

Работа  с текстом

    Выводимые на экран изображения лучше всего  сопровождать пояснительным текстом. В графическом режиме для этого  используются процедуры OutText и OutTextXY. Процедура OutText(Textst: string) выводит строку текста, начиная с текущего положения указателя. Недостаток этой процедуры – нельзя указать произвольную точку начала вывода. В этом случае удобнее пользоваться процедурой OutTextXY(x, y: integer, Textst: string), где x, y – координаты точки начала вывода текста, Textst – константа или переменная типа String. Например, OutTextXY(60, 100, ‘Нажмите любую клавишу’).

    Вывод численных значений

    В модуле Graph нет процедур, предназначенных для вывода численных данных. Поэтому для вывода чисел сначала нужно преобразовать их в строку с помощью процедуры Str, а затем подключить посредством ‘+’ к выводимой строке. Для удобства преобразование целочисленных и вещественных типов данных в строку лучше осуществлять специализированными пользовательскими функциями IntSt и RealSt:

    function IntSt(Int: integer) : string;

    var Buf : string[10];

    begin

    Str(Int, Buf);

    IntSt := Buf;

    end;

    function RealSt(R : real, Dig, Dec : integer) : string;

    var Buf: string[20];

    begin

    Str(R : Dig : Dec, Buf);

    RealSt := Buf;

    end;

   Эти функции указываются как параметры  в процедурах OutText и OutTextXY.

    Шрифты

    Вывод текста в графическом режиме может  осуществляться различными стандартными (таблица 5) и пользовательскими шрифтами. Различают два типа шрифтов: растровые и векторные. Растровый шрифт задается матрицей точек, а векторный – рядом векторов, составляющих символ.

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

    Таблица 5

Шрифт Файл
TriplexFont Trip.chr
SmallFont Litt.chr
SansSerifFont Sans.chr
GothicFont Goth.chr

    Большинство стандартных шрифтом не содержат русских символов. Разработка же собственных шрифтов – довольно сложный и трудоемкий процесс. Он может быть ускорен, если воспользоваться специализированными пакетами TurboFont, BgiToolKit.

    Установить  нужный шрифт можно процедурой SetTextStyle(Font,d,c:word), где Font – выбранный шрифт, d – направление ( горизонтальное или вертикальное), с – размер выводимых символов. Возможные значения двух первых параметров представлены в таблице 5. При организации вертикального вывода необходимо учитывать, что если не установить точку начала вывода с помощью MoveTo, то текст начинается с нижней строки экрана и продолжается вверх. Величина символов устанавливается коэффициентом с. Если с=1, то символ строится в матрице 8x8, если с= 2, то матрица 16x16 и т.д. до 10-кратного увеличения.

    Выравнивание  текста

    В некоторых случаях требуется в пределах одной строки  выводить символы выше или ниже друг друга. Выравнивание текста выполняется с помощью процедуры SetTextJustify(Horiz, Vert : word) как по вертикали, так и по горизонтали посредством задания параметров Horiz и Vert (возможные значения в таблице 6).

    Таблица 6

Параметр  Значение  Комментарий
Горизонтальное  выравнивание
LeftText 0 Выровнять влево 
CenterText 1 Центрировать
RightText 2 Выровнять вправо
Вертикальное  выравнивание
BottomText 0 Переместить вниз
CenterText 1 Центрировать
TopText 2 Переместить вверх 
 

Построение  графиков функций

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

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

    Выбрать масштаб увеличения можно следующим  образом:

    - определить горизонтальный и вертикальный размеры графика (для этого вводятся границы области значений и определяются максимальное и минимальное значение функции на заданной области определения, затем вычисляются разности максимального и минимального значений аргументов и функции, которые и являются горизонтальным и вертикальным размерами графика соответственно);

-определить  масштаб( сначала определяются масштабы изображения по горизонтали и вертикали с учетом размеров выбранного экрана по формуле: масштаб(г/в) = размер экрана (по г/в) / размер графика (по г/в), затем из них выбирается меньший, который и принимается за необходимый масштаб. В нашем случае графический экран имеет размеры 640 на 480).В любом случае, чтобы высветить на экране точку, надо взять x, вычислить по данной абсциссе y и выполнить рисование точки. Так как на экране можно получить лишь ограниченное количество значений х, то их перебираем с помощью цикла.

Построение  случайных процессов

    Для того, чтобы картинки не были монотонными  и регулярными, можно задавать фигурам  случайные размеры, цвет, координаты. Для этого имеется специальная функция Random: Она генерирует случайные числа из [0, 1). Для расширения первоначального промежутка используется функция Random(I: word), которая выдает число из диапазона 0… I. На самом деле эти функции генерируют некоторую последовательность псевдослучайных чисел, и чтобы добиться иллюзии полной «случайности» используют команду Randomize, которая изменяет базу датчика случайных чисел.

Создание  иллюзии движения

    Создать видимость движения изображения  на экране можно несколькими способами. Рассмотрим два из них.

    I способ. Имитация движения объекта на экране за счет многократного выполнения программой набора действий: нарисовать – пауза – стереть (нарисовать в том же месте цветом фона) – изменить координаты положения рисунка.

    Перед началом составления программы  надо продумать описание «двигающегося» объекта, характер изменения координат, определяющих текущее положение  объекта, диапазон изменения и шаг.

    II способ. Иллюзия движения создается при помощи специальных процедур и функций.

    Функция ImageSize(x1, y1, x2, y2: integer):word возвращает размер памяти в байтах, необходимый для размещения прямоугольного фрагмента изображения, где x1,y1 – координаты левого верхнего и x2, y2 – правого нижнего углов фрагмента изображения.

    Процедура GetImage(x1, y1, x2, y2:integer, var Buf) помещает в память копию прямоугольного фрагмента изображения, где x1, ..,y2 – координаты углов фрагмента изображения, Buf – специальная переменная, куда будет помещена копия видеопамяти с фрагментом изображения. Buf должна быть не меньше значения, возвращаемого функцией ImageSize с теми же координатами.

    Процедура PutImage(x1, y1, x2, y2:integer, var Buf, Mode:word) выводит в заданное место экрана копию фрагмента изображения, ранее помещенную в память процедурой GetImage. X, Y – координаты левого верхнего угла того места на экране, куда будет скопирован фрагмент изображения; Buf –специальная переменная, откуда берется изображение, Mode – способ копирования. Координаты правого нижнего угла не указываются, так как они полностью определяются размерами выводимой на экран копии изображения. Координаты левого верхнего угла могут быть любыми, лишь бы только копия уместилась в пределах экрана (если копия не размещается на экране, то она не выводится , и экран остается без изменений). Параметр Mode определяет способ взаимодействия размещаемой с уже имеющимся на экране изображением.

    Таблица 7

Константа Значение  Операция  Пояснения
NormalPut 0 Замена существующего  на копию  Стирает часть  экрана и на это место помещает копию
XorPut 1 Исключительное  или  Рисует сохраненный  образ или стирает ранее нарисованный, сохраняя фон 
OrPut 2 Объединительное или  Накладывает сохраненный  образ на существующий
AndPut 3 Логическое  и  Объединяет  сохраненный образ и уже существующий на экране
NotPut 4 Инверсия изображения  То же самое, что и 0, только копия выводится  в инверсном виде

Информация о работе Разработка факультативного курса «Программирование графики» для старших классов