1. Здравствуйте. На прошлом уроке мы познакомились с графическим режимом среды Turbo Pascal
Вид материала | Урок |
Содержание4. В процессе сегодняшней работы мы познакомились с новыми процедурами: SetLineStyle |
- Компоновать программы из отдельных частей отлаживать программы выполнять программы., 197.76kb.
- Программирование на языке высокого уровня, 59.92kb.
- Програма на мові Turbo Pascal, лінійні програми Команди галуження, вибору та мітки, 1485.97kb.
- Доманская Юлия Георгиевна г. Вилейка 2006г пояснительная записка, 74.95kb.
- Б. В. Ващук Turbo Pascal, 715.52kb.
- Урок №2. Тема: «Структура программы на Turbo Pascal», 71.26kb.
- Задачи Образовательные: познакомить учащихся с новым произведением; отрабатывать навык, 57.38kb.
- Конспект урока по информатике для десятого класса по теме «Условный оператор в Turbo, 32.44kb.
- Курс «Программирование на языке Turbo Pascal 0» Цель курса, 19.6kb.
- Задачи работы Научиться создавать программы на языке Turbo Pascal с использованием, 598.05kb.
Ход урока:
1. Здравствуйте. На прошлом уроке мы познакомились с графическим режимом среды Turbo Pascal. Научились рисовать простейшие фигуры. Давайте вспомним, как же происходит обращение к графическому режиму: если вы собираетесь работать с изображениями, то напишите первой строкой своей программы USES Graph. USES читается “’юзез”, переводится “использует”. Graph читается “граф”, это сокращение слова “графика”. Значит, строка USES Graph является приказом компьютеру “использовать стандартный модуль Graph ”, для чего загрузить в память те его процедуры и другие элементы, которые позволяют нам рисовать на экране разноцветные точки, отрезки прямых, дуги, закрашенные и не закрашенные окружности, прямоугольники, а также выполнять ряд других действий. Но сама по себе эта строка не является указанием компьютеру переключиться в графический режим, хотя бы потому, что находится в разделе описаний, а не в разделе операторов. Для переключения в графический режим (или, как говорят, для инициализации графического режима) служит стандартная процедура InitGraph. Для того, чтобы закрыть графический режим и снова переключиться в текстовый, служит стандартная процедура CloseGraph.
Как вы помните, процедура InitGraph, имеет определенные параметры:
InitGraph(Device, Mode, ‘c:\TP\BGI’)
Device означает тип вашего видеоадаптера, а Mode означает номер графического режима. Если вы ничего не знаете ни о том, ни о другом, смело пишите Device:= 0 и Паскаль сам определит тип вашего видеоадаптера и установит самый мощный из допустимых графический режим. Третий элемент - не что иное, как путь к графическим драйверам Паскаля.
Вспомним, к каким процедурам мы обращались для рисования:
Для точки - PutPixel(14,6, Yellow)
Для прямоугольника - Rectangle (4,2,16,10)
Для окружности - Circle(100,80,50)
В PutPixel первый параметр - горизонтальная координата точки, второй - вертикальная, третий - цвет точки (желтый). В Rectangle первая пара параметров - координаты любого из углов прямоугольника, вторая пара - координаты противоположного ему угла (только не соседнего). В каждой паре первой идет горизонтальная координата, второй - вертикальная. В Circle первая пара параметров – координаты центра окружности, третья – радиус.
В школе вы привыкли к такой системе координат:
В
компьютере же применяется такая:
Как видите, ось у направлена вниз. Это не очень привычно.
2. Но наши рисунки получаются не очень интересными: черный экран, белые линии… Сегодня мы исправим эту ситуацию, научимся работать с цветом.
3. Мы уже сталкивались с цветом, когда работали с текстом, и помним, что в Turbo Pascal(е) используются 16 цветов. Модуль Graph работает с ними же, вот они:
0 | Black | Черный |
1 | Blue | Синий |
2 | Green | Зеленый |
3 | Cyan | Голубой |
4 | Red | Красный |
5 | Magenta | Фиолетовый |
6 | Brown | Коричневый |
7 | LightGray | Светлосерый |
8 | DarkGray | Темносерый |
9 | LightBlue | Ярко-синий |
10 | LightGreen | Ярко-зеленый |
11 | LightCyan | Ярко-голубой |
12 | LightRed | Розовый |
13 | LightMagenta | Малиновый |
14 | Yellow | Желтый |
15 | White | Белый |
Стандартный русский перевод цвета в этой таблице не всегда точен. Например, LightMagenta только с большой натяжкой можно назвать малиновым цветом.
Сначала поговорим о стиле линий. Если вы хотите, чтобы линии, которыми чертятся фигуры, были потолще, используйте процедуру SetLineStyle. Вот ее вызов - SetLineStyle(0, 0, ThickWidth). Это приказ отныне рисовать линии толстыми. Если вы хотите вернуться к тонким линиям, напишите SetLineStyle(0, 0, NormWidth).
Откройте на своих компьютерах программу GR1. Запустите ее.(учащиеся открывают программу и запускают ее, на экране появляется рисунок) Посмотрите какой неинтересный вид имеет рисунок, будем это исправлять.
Измените, пожалуйста, стиль линий, добавив в программу процедуру SetLineStyle(0, 0, ThickWidth).
Теперь поговорим о цвете. В обращениях к процедурам, имеющим дело с цветом, вместо английского названия цвета можно писать соответствующее число. Например, вместо PutPixel(14,6, Yellow) можно написать PutPixel(14,6, 14). Измените произвольно цвет точек.
Если цвет точки задается непосредственно в вызове процедуры, которая рисует точку (PutPixel), то цвета многих других фигур задаются по-иному. Делает это специальная процедура SetColor. Пример: SetColor(Yellow) приказывает компьютеру отныне рисовать фигуры желтым цветом. С этой процедурой мы тоже знакомы (изучалась в ходе работы над текстом).
Добавьте эту процедуру в программу (цвет выберите произвольно), вставив ее до процедур, изображающих фигуры. Выполните компиляцию. Запустите программу, посмотрите, что получилось.
Обратим внимание на цвет экрана. Давайте попытаемся изменить и его. Для этого обратимся к процедуре SetBkColor(Color). Добавьте эту процедуру в начало программы. Цветом фона выберите белый цвет (рекомендовано). Посмотрите что получилось.
Работая в Паскале, вы можете покрасить любым цветом (залить краской) любую область экрана внутри замкнутого контура. Посмотрим на нашу картинку:
Мы можем ее покрасить, например, вот так:
Как красить? Начнем с процедуры SetFillStyle. Подобно тому, как процедура SetColor сама ничего не рисует, а только устанавливает цвет линий на будущее, процедура SetFillStyle сама ничего не заливает, а устанавливает цвет и стиль заливки на будущее. Например, SetFillStyle(1, Green) устанавливает заливку зеленым цветом. На единичку пока не обращаем внимания. Добавьте в конце программы эту процедуру, указав произвольный цвет.
Сам процесс заливки вызывает процедура FloodFill. Например, FloodFill(200, 150, Blue) вызывает следующие действия Паскаля: В точке экрана с координатами х=200 и у=150 встает “маляр с ведром краски”, цвет которой был указан в обращении к процедуре SetFillStyle (в нашем примере - зеленый), и начинает эту краску разливать вокруг себя. Краска свободно растекается по экрану и преградой для нее становится только линия, имеющая цвет, указанный в обращении к процедуре FloodFill, то есть синий. Очевидно, если синий контур не будет замкнут вокруг “маляра”, то краска прольется на весь экран.
Попробуйте поставить “маляра” в одну из точек, указанных в программе, указав в первых двух параметрах процедуры FloodFill, ее координаты, а третьим параметром тот цвет, которым изображены ваши фигуры. Посмотрите результат.
А теперь попробуем поставить “маляра” вне изображенных фигур. Посмотрите результат. Теперь будет закрашена вся поверхность экрана, кроме области внутри фигур. Распространенная ошибка: на вопрос о том, каким цветом будет красить оператор FloodFill(250, 100, Yellow), отвечают “Желтым”, хотя нужно отвечать “Не знаю, надо посмотреть в SetFillStyle”. Удалим эту команду, пусть основной цвет экрана останется белым (для наглядности).
Вернемся к процедуре SetFillStyle(1, Color). Что же означает первый параметр?
Самостоятельно поэкспериментируйте, изменяя его в пределах от 1 до 9. Сделаем это в процессе изменения нашего рисунка, раскрасим его. Сначала указываем процедуру SetFillStyle , затем FloodFill . Как и прежде, используйте точки внутри фигуры для процедуры FloodFill. Установите различный стиль и цвет заливки для каждой части рисунка. Просматривайте результат в процессе выполнения задания. Посмотрите, что получилось.
Вы видите, как изменился стиль линий! Примените не сплошной стиль заливки к фону экрана.
4. В процессе сегодняшней работы мы познакомились с новыми процедурами: SetLineStyle, SetFillStyle, FloodFill. Изучили их возможности. Также мы закрепили знания о других процедурах Turbo Pascal(я), встречавшихся нам ранее. Важно запомнить особенности процедур SetFillStyle и SetColor, которые лишь задают цвет. А также то, что цвет, указанный в процедуре FloodFill, не является цветом заливки, а задает цвет линии, которая эту заливку ограничивает.
5. Надеюсь, что вам понравились сегодняшние эксперименты и знания, полученные на уроке, пригодятся вам в дальнейшем.
Домашнее задание будет следующим: изучить учебник стр. 108 – 111(уроки 58,59), выписать в тетрадь упоминающиеся там графические процедуры и их особенности.