Назад    Главная страница

 

МОУ Белоомутская средняя общеобразовательная школа №2

 

Урок информатики по теме:

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

Язык программирования BASIC.

(То же есть на Delphi)

 

 

Учитель информатики: Гостев Н.Н.

 

 

 


Открытый урок по информатике в 10-ом классе.

 

Тема: Графические возможности ЭВМ.

 

Цель урока: Закрепление темы «Графические операторы языка программирования BASIC»; построение рисунка с использованием простейших графических средств.

 

План урока:

  1. Организационный момент;
  2. Опрос по пройденной теме;
  3. Постановка задачи;
  4. Написание программы;
  5. Размещение учеников по рабочим местам;
  6. Написание программы и работа с ней;
  7. Оценка результатов работы.

 

Ход урока:

 

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

 

2. Для того, чтобы выполнить любой чертёж с помощью компьютера, необходимо знать графические операторы, выполняющие черчение графических примитивов. Такими операторами, описанными в языке программирования BASIC, являются…

 

Вызывается к доске ученик с рассказом об основных графических операторах и правилах их написания.

 

SCREEN 9 – включение графического экрана;

 

PSET (x, y), c – установка точки по координатам x, y и цветом c;

 

LINE [(x1, y1)] - [STEP] (x2, y2), c

x1, y1 – координаты одного конца отрезка;

x2, y2 – координаты второго конца отрезка;

STEP – шаг;

 

CIRCLE (x, y), r, [c], [s], [e], [k] – черчение дуги окружности, где

x, y – координаты центра эллипса;

rрадиус дуги окружности по оси ox;

cцвет дуги окружности;

sугол, с которого начинается черчение дуги окружности;

eугол, которым оканчивается черчение дуги окружности;

k – коэффициент сжатия, отношение размера по y к размеру по x

 

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

 

Циклы бывают двух основных видов: арифметические и итерационные. Их отличие состоит в том, что число повторений действий в одном цикле заранее известно, а в другом – нет.

FOR i=0 TO 2*pi STEP .2

         Действия в цикле

NEXT i

 

Здесь:        i – счётчик цикла (параметр);

                   0 – начальное значение i;

                   2*pi – конечное значение i;

                   .2 – шаг изменения параметра.

 

3. Теперь разберём такую задачу: разделим начерченную на экране линию на заданное число (n) равных отрезков. Если нам известны координаты обоих концов отрезка, то это сделать легко. Допустим, что x1, y1 – координаты одного конца отрезка, x2 , y2 – координаты второго конца отрезка. Тогда координаты промежуточных точек разбиения вычисляются так:

 

          x(m) = x1 + (x2 – x1) * (m / n)

          y(m) = y1 + (y2 – y1) * (m / n), где m – номер точки разбиения.

 

Ясно, что при m = 0 мы получаем точку с координатами x1, y1. А при m = n – точку с координатами x2,y2, т.к.

 

          x1 + (x2 – x1) = x2, (x2 – x1) расстояние между x1 и x2 по x

          y1 + (y2 – y1) = y2, (y2 – y1) расстояние между y1 и y2 по y

 

А теперь попробуем сделать деление сторон угла. Сколько точек требуется для черчения угла?

 

Три точки с координатами x1, y1; x2,y2; x3,y3

 

Но поскольку нам требуются только точки разбиения сторон угла, сколько пар координат нам потребуется вычислить?

 

          Нам нужны только две пары координат для двух точек.

 

Какой графический оператор необходим для соединения этих двух точек?

 

          Оператор LINE

 

4. Используя выведенные формулы напишем простую подпрограмму (цикл) на языке BASIC для деления сторон угла и соединения точек деления:

 

M1: FOR i = 0 TO n

LINE (x1 + (x2 – x1) * (i / n), y1 + (y2 – y1) * (i / n)) - (x2 + (x3 – x2) * (i / n), y2 + (y3 – y2) * (i / n))

NEXT i

RETURN

 

Понятно, что изменяя координаты трёх точек, можно получить такое деление любого угла. Теперь напишем основную программу и сделаем из неё ссылку на описанный выше цикл. Будем обращаться к подпрограмме каждый раз, как изменим координаты трёх точек.

 

SCREEN 9

n = 10

 

x1 = 0

y1 = 0

x2 = 0

y2 = 300

x3 = 400

y3 = 300

GOSUB M1

 

… – задание новых значений координат

GOSUB M1

… – задание новых значений координат

GOSUB M1

… – задание новых значений координат

GOSUB M1

И т.д.

 

5. Включаем компьютеры.

 

6. Попробуем поделить углы прямоугольника и нарисовать предложенный рисунок, добавляя в программу блоки задания новых значений координат.

Первыми получают оценки те, кто отвечал и те, кто построил красивый рисунок.

 

 

 

 

 

Подпись: В

 

Подпись: x1

 

Подпись: X

 

    

 

 

 

 

 

 

 

 

 

 

 

Рисунок 1.

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

          A – (x1, y1)

          B – (x2, y2)

 

          Любую точку отрезка теперь можно найти, воспользовавшись формулами:

          x(m) = x1 + (x2 – x1) * (m / n)

          y(m) = y1 + (y1 – y2) * (m / n)

          где m – номер точки,

          nколичество точек разбиения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 2.

 

Пример программы на языке BASIC, выполняющий черчение рисунка 2. Эту программу можно значительно упростить и сократить за счёт использования операторов чтения и записи данных READ и DATA или не задавая повторно одно и то же значение параметра.

 

SCREEN 9

n = 20

x1 = 0

y1 = 0

x2 = 0

y2 = 330

x3 = 600

y3 = 330

GOSUB m1

x1 = 0

y1 = 330

x2 = 600

y2 = 330

x3 = 600

y3 = 0

GOSUB m1

x1 = 600

y1 = 330

x2 = 600

y2 = 0

x3 = 0

y3 = 0

GOSUB m1

x1 = 600

y1 = 0

x2 = 0

y2 = 0

x3 = 0

y3 = 330

GOSUB m1

x1 = 300

y1 = 0

x2 = 300

y2 = 175

x3 = 600

y3 = 175

GOSUB m1

x2 = 300

y2 = 175

x3 = 300

y3 = 0

x1 = 0

y1 = 175

GOSUB m1

x2 = 300

y2 = 175

x3 = 0

y3 = 175

x1 = 300

y1 = 330

GOSUB m1

x2 = 300

y2 = 175

x3 = 300

y3 = 330

x1 = 600

y1 = 175

GOSUB m1

x2 = 300

y2 = 175

x1 = 0

y1 = 0

x3 = 0

y3 = 330

GOSUB m1

x2 = 300

y2 = 175

x1 = 0

y1 = 330

x3 = 600

y3 = 330

GOSUB m1

x2 = 300

y2 = 175

x1 = 600

y1 = 330

y3 = 0

x3 = 600

GOSUB m1

x1 = 0

y1 = 0

x3 = 600

y3 = 0

GOSUB m1

 

END

 

'*___________подпрограмма _______________*

m1: FOR l = 0 TO n

      LINE (x1 + (x2 - x1) * (l / n), y1 + (y2 - y1) * (l / n))-(x2 + (x3 - x2) * (l / n), y2 + (y3 - y2) * (l / n))

    NEXT l

RETURN

 

 

 

 

 

 

 

Тем, кто уверенно справляется с вычерчиванием рисунка 2, можно дать на построение рисунок 3 (в качестве дополнительного или усложнённого задания).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 3.

 

Назад    Главная страница

Хостинг от uCoz