Построение с помощью линейки и циркуля. «Геометрические построения с помощью циркуля и линейки

Данная статья написана по материалам одного из разделов книги Седжвика, Уэйна и Дондеро "Программирование на языке Python", уже упоминавшейся ранее . Называется этот раздел "Системы итерационных функций", и в нём описано построение различных изображений, таких как треугольник Серпиньского, папоротник Барнсли и некоторых других, с помощью достаточно несложного алгоритма, который, к тому же, ещё и с лёгкостью реализуется.

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

Так что для понимания теоретической части статьи читателю пригодятся знания некоторых разделов математики, которые обычно читаются в технических вузах. А именно, нелишним будет знакомство с теорией вероятностей и элементами математического анализа.

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

Итак, переходим к теоретической части нашего повествования.

Итерационные функции и случайные последовательности

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

Зададим 2 последовательности, x n n = 1 ∞ и y n n = 1 ∞ , с помощью следующих рекуррентных формул:

X n = f x n - 1 , y n - 1 , n ∈ ℕ , y n = g x n - 1 , y n - 1 , n ∈ ℕ .

Поясним, что x 0 и y 0 - это некоторые заранее заданные числа, а f (x , y ) и g (x , y ) - это некоторые функции двух переменных, называемые итерационными . Сам процесс вычисления очередного члена той или иной последовательности через такие функции будем называть итерациями , а приведённый выше набор рекуррентных формул - итерационной схемой.

Рекурсивный способ задания последовательностей, скорее всего, хорошо знаком читателю, если он изучал математику в вузе. Несколько необычным может показаться "перекрёстный" способ вычисления членов последовательностей, при котором для вычисления n -го члена каждой из двух последовательностей нужен не только n − 1-й член той же последовательности, но и n − 1-й член другой.

А теперь рассмотрим схему построения членов двух последовательностей, использующую не одну пару итерационных функций, а m пар. Каждая из этих функций будет линейной по обеим переменным, а также будет содержать аддитивную константу. Более конкретно, функции будут иметь вид:

F k x , y = a k x + b k y + c k g k x , y = d k x + e k y + h k , k = 0 , 1 , … , m - 1 .

Для каждого n , начиная с 1, будет случайным образом выбираться число от 0 до m − 1, и при вычислении x n и y n в рекуррентных формулах будет использоваться пара итерационных функций, индексы которых равны данному случайному числу. Отметим, что случайные числа, "появляющиеся" перед каждой итерацией, не обязаны быть равновероятными. Однако для разных шагов вероятность появления конкретного фиксированного числа одна и та же.

Давайте теперь сформулируем сказанное на строгом математическом языке. Рассмотрим последовательность дискретных независимых в совокупности случайных величин T n = 1 ∞ , распределённых по одному и тому же закону. А именно: каждая случайная величина принимает значения 0, 1, …, m − 1 с соответствующими вероятностями p 0 , p 1 , …, p m -1 .

Теперь последовательности, x n n = 1 ∞ и y n n = 1 ∞ зададим с помощью следующей итерационной схемы:

X n = f T n x n - 1 , y n - 1 , n ∈ ℕ , y n = g T n x n - 1 , y n - 1 , n ∈ ℕ .

Как и ранее, x 0 и y 0 - это некоторые заранее заданные числа.

Таким образом, каждая из последовательностей является случайной, т. е. её члены - это случайные величины. Однако, каждую из этих последовательностей можно "реализовать", т. е. вычислить все её члены (разумеется, таких реализаций будет бесконечно много).

Зададимся главным вопросом данного раздела. А какое же отношение изображения, которые мы собираемся строить, имеют к этой паре случайных последовательностей? Очень простое. Построим реализацию этих двух последовательностей. Для каждого натурального n пару (x n , y n ) можно рассматривать как координаты точки, заданной в декартовой прямоугольной системе координат на плоскости. Так вот, изображение, соответствующее некоторой паре реализованных последовательностей, представляет собой геометрическое место всех таких точек на плоскости.

Казалось бы, для каждой реализации пары последовательностей мы будем получать своё изображение, отличное от других. Однако, как это ни парадоксально, получаемые изображения каждый раз будут практически совпадать (т. е. при построении на компьютере будут неразличимы человеческим глазом). А при соответствующем подборе итерационных функций и законов распределения случайных величин, участвующих в формировании членов последовательностей, можно создавать весьма интересные узоры.

Добавим, что при построении изображений на компьютере, мы, разумеется, будем выполнять лишь конечное (но достаточно большое) число итераций.

О генерации псевдослучайных чисел

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

Переведём задачу в математическую плоскость. Пусть имеется непрерывная случайная величина U , распределённая равномерно на отрезке . Зададимся целью построить дискретную случайную величину T как функцию от U , таким образом, чтобы T принимала значения 0, 1, …, m − 1 с соответствующими вероятностями p 0 , p 1 , …, p m -1 .

Решить поставленную задачу весьма просто. Введём в рассмотрение суммы вероятностей

s k = ∑ i = 0 k - 1 p i , k = 0 , 1 , … , m - 1 .

Если верхний предел суммирования по i меньше нижнего, то такую сумму по определению будем полагать равной 0.

Т выразим через U следующим образом:

T = 0 , если U ∈ s 0 , s 1 , 1 , если U ∈ s 1 , s 2 , 2 , если U ∈ s 2 , s 3 , … … … … … … , … … … … … … , m - 1 , если U ∈ s m - 1 , 1 .

Очевидно, случайная величина T распределена по требуемому нами закону. Заметим, что, по сути, Т - это номер промежутка, в который попадает случайная величина U (при условии, что промежутки мы нумеруем числами от 0 до m − 1 в порядке возрастания их левых границ).

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

А теперь можно переходить к написанию программы.

Структура программы

Программа состоит из файла main.c и файлов, образующих графическую библиотеку pgraph. Содержимое файла main.c начинается со следующей директивы, подключающей графическую библиотеку:

#include "pgraph.h"

Далее в файле содержатся описания глобальных константных переменных и константных массивов. За ними - определения функций get_random_value() и main() . Первая из них генерирует псевдослучайные числа, а вторая выполняет основную работу по построению изображений.

Глобальные константные переменные и константные массивы

Вся информация, необходимая для построения конкретного изображения, содержится в глобальных константных переменных и константных массивах. Разумеется, для каждого изображения набор значений констант и элементов константных массивов будет "свой".

Ниже приводятся описания данных констант и массивов.

  • n - количество итераций;
  • w - ширина изображения в пикселях;
  • h - высота изображения в пикселях;
  • xc - абсцисса начала новой системы координат в старой системе;
  • yc - ордината начала новой системы координат в старой системе;
  • l - длина в пикселях отрезка, параллельного одной из осей координат, имеющего в новой системе координат единичную длину;
  • m - количество пар итерационных функций, т. е. число m ;
  • s - одномерный массив размера m , содержащий суммы вероятностей случайных величин T n (k -й элемент массива содержит s k );
  • f - двухмерный массив, состоящий из m f k (x , y k , 0), (k , 1), (k , 2) содержат числа a k , b k , c k соответственно, где 0 ≤ k m − 1);
  • g - двухмерный массив, состоящий из m "строк" и 3-х "столбцов", содержащий константы, задействованные в функциях g k (x , y ) (элементы массива с индексами (k , 0), (k , 1), (k , 2) содержат числа d k , e k , h k соответственно, где 0 ≤ k m − 1).

Все переменные имеют тип int , а базовым типом всех массивов является double .

Поясним, что под "старой" системой координат подразумевается та, которая определена в библиотеке pgraph. Построения всех изображений будут вестись в новой системе, полученной из старой параллельным переносом (сдвиги по осям абсцисс и ординат равны соответственно x c и y c ) и "сжатием" в l раз. Таким образом, точка, имеющая в новой системе координаты (x , y ), в старой будет иметь координаты (x l + x c , y l + y c ). Излишне, думаю, пояснять, что за хранение чисел x c , y c и l ответственны константные переменные xc , yc и l соответственно.

Для хранения чисел x 0 и y 0 переменные не выделяются, поскольку во всех случаях построения изображений в качестве этих чисел берутся нули.

Генерация псевдослучайных чисел: функция get_random_value()

Функция get_random_value() при каждом обращении к ней генерирует псевдослучайное целое число в диапазоне от 0 до m − 1 в соответствии с описанной ранее схемой . Вот код этой функции:

1. int get_random_value() 2. { 3. double r = (double ) rand() / RAND_MAX; 4. int c = 1 ; 5. while (s[c] < r && ++c < m) 6. ; 7. return c - 1 ; 8. }

Получаем с помощью стандартной библиотечной функции rand() псевдослучайное число в диапазоне от 0 до значения макроса RAND_MAX , делим полученный результат на это значение и присваиваем частное переменной r (стр. 3). Теперь в r хранится число, принадлежащее отрезку . Его приближённо можно считать значением случайной величины, равномерно распределённой на этом отрезке.

Поясним, что значение макроса RAND_MAX , в нашем случае (т. е. в случае использования компилятора MinGW64 версии 4.9.2 для 64-битных систем) равно 32767.

Теперь, с помощью линейного поиска, задействующего цикл while , ищем индекс наибольшего элемента массива s , не превосходящего значение r , увеличенный на единицу, и сохраняем его в переменной c (см. стр. 4-6). Отметим, что в случае, если значение r - нулевое, цикл не выполняется ни разу, а переменная с сохраняет единичное значение (см. стр. 4).

Значение, возвращаемое функцией, можно приближённо рассматривать как значение случайной величины T , описанной в упомянутом выше разделе.

Генерация изображения: функция main()

А вот и код функции main() :

1. int main() 2. { 3. image *img = create_image(w, h); 4. double x = 0 , y = 0 ; 5. for (int i = 0 ; i < n; i++) 6. { 7. int r = get_random_value(); 8. double x1 = f[r] * x + f[r] * y + f[r]; 9. double y1 = g[r] * x + g[r] * y + g[r]; 10. x = x1; 11. y = y1; 12. set_color(img, round(x * l) + xc, round(y * l) + yc, BLACK); 13. } 14. save_to_file(img, "out.bmp" ); 15. free(img); 16. return 0 ; 17. }

Создаём изображение с заданными размерами (стр. 3). Выделяем память под переменные x и y , в которых будут храниться текущие члены последовательностей, и инициализируем их нулями (стр. 4). Напомню, что в качестве чисел x 0 и y 0 , участвующих в вычислении первых членов каждой из последовательностей, берутся нули.

Вычисляем в цикле for первые n членов каждой последовательности (стр. 5-13). Получаем сначала псевдослучайное число и записываем его в r (стр. 7). Далее вычисляем текущие значения членов обеих последовательностей, помещая их во временные переменные x1 и y1 (стр. 8, 9). При вычислении используем константы, фигурирующие в итерационных функциях и хранящиеся в массивах f и g . Выбор той или иной пары наборов коэффициентов (а значит, пары итерационных функций) зависит от значения r , использующегося в качестве первых индексов участвующих в вычислениях элементов массивов.

Переписываем вычисленные текущие значения в переменные x и y (стр. 10, 11). Координаты точки, содержащиеся в этих переменных, переводим в координаты исходной системы координат, округляем до целых и наносим точку с результирующими координатами на изображение чёрным цветом (стр. 12).

По завершении цикла сохраняем сформированное изображение в файле "out.bmp" (стр. 14) и освобождаем занимаемую изображением память (стр. 15). На этом работа функции завершается.

Построение изображения треугольника Серпиньского

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

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

В книге Седжвика и других авторов предлагается следующий способ построения изображения треугольника Серпиньского. Рассмотрим 3 точки на плоскости, являющиеся вершинами равностороннего треугольника, например, точки с координатами 0 , 0 , 0 , 1 , 1 / 2 , 3 / 2 в декартовой прямоугольной системе координат. Выбираем наугад (с равными вероятностями) одну из трёх вершин треугольника и строим точку, делящую отрезок, соединяющий вершину с координатами 0 , 0 и выбранную наугад вершину, пополам. Это первая точка нашего изображения.

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

Нам потребуются 3 пары итерационных функций. Их индексы 0, 1, 2 должны выбираться с вероятностями 1/3, 1/3, 1/3 соответственно. Сами итерационные функции приведены ниже.

F 0 x , y = 1 / 2 x , g 0 x , y = 1 / 2 y , f 1 x , y = 1 / 2 x + 1 / 2 , g 1 x , y = 1 / 2 y , f 2 x , y = 1 / 2 x + 1 / 4 , g 2 x , y = 1 / 2 y + 3 / 4 .

Теперь давайте вставим в нашу программу описания глобальных константных переменных и константных массивов, соответствующие данным вероятностям и данным итерационным функциям. Но для начала определим макрос TRIANGLE , поместив в файл main.с после инструкции #include следующую инструкцию

#define TRIANGLE

После инструкции вставляем в файл следующий код:

//Треугольник Серпиньского #ifdef TRIANGLE const int n = 100000 ; //количество итераций const int w = 620 , h = 550 ; //размеры изображения const int xc = 10 , yc = 10 ; //координаты начала новой системы координат в старой const int l = 600 ; //коэффициент сжатия const int m = 3 ; //количество пар итерационных функций const double s = {0 , 0.3333333 , 0.6666667 }; //массив сумм вероятностей const double f = {{0.5 , 0.0 , 0.0 }, //массив коэффициентов для функций f(x,y), {0.5 , 0.0 , 0.5 }, //задействованных для вычислений x {0.5 , 0.0 , 0.25 }}; const double g = {{0.0 , 0.5 , 0.0 }, //массив коэффициентов для функций g(x,y), {0.0 , 0.5 , 0.0 }, //задействованных для вычислений y {0.0 , 0.5 , 0.4330127 }}; #endif

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

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

Построение изображения папоротника Барнсли

Следующее изображение, построение которого описывается в книге Седжвика и других, - это изображение папоротника Барнсли. Теперь нам уже потребуются 4 пары итерационных функций. Их индексы 0, 1, 2, 3 будут выбираться с вероятностями 0,01, 0,85, 0,07, 0,07 соответственно. А вот и сами итерационные функции:

F 0 x , y = 0 , 5 , g 0 x , y = 0 , 16 y , f 1 x , y = 0 , 85 x + 0 , 04 y + 0 , 075 , g 1 x , y = - 0 , 04 x + 0 , 85 y + 0 , 18 , f 2 x , y = 0 , 2 x - 0 , 26 y + 0 , 4 , g 2 x , y = 0 , 23 x + 0 , 22 y + 0 , 045 , f 3 x , y = - 0 , 15 x + 0 , 28 y + 0 , 575 , g 3 x , y = 0 , 26 x + 0 , 24 y - 0 , 086 .

Вносим теперь изменения в программу. Инструкцию #define заменяем инструкцией

#define FERN

А после #ifdef -блока помещаем следующий фрагмент кода:

//Папоротник Барнсли #ifdef FERN const int n = 100000 ; const int l = 600 ; const int m = 4 ; const double s = {0 , 0.01 , 0.86 , 0.93 }; const double f = {{0.0 , 0.0 , 0.5 }, {0.85 , 0.04 , 0.075 }, {0.2 , -0.26 , 0.4 }, {-0.15 , 0.28 , 0.575 }}; const double g = {{0.0 , 0.16 , 0.0 }, {-0.04 , 0.85 , 0.18 }, {0.23 , 0.22 , 0.045 }, {0.26 , 0.24 , -0.086 }}; #endif

Результатом компиляции и запуска программы является следующее изображение:

Построение изображения дерева

Теперь построим то, что в книге Седжвика и других авторов называется "деревом", хотя то, что оказывается изображённым, скорее, похоже на набор деревьев различных размеров. На этот раз в итерационном процессе будут участвовать 6 пар итерационных функций. Их индексы 0, 1, 2, 3, 4, 5 будут выбираться с вероятностями 0,1, 0,1, 0,2, 0,2, 0,2, 0,2 соответственно. Вот эти функции:

F 0 x , y = 0 , 55 , g 0 x , y = 0 , 6 y , f 1 x , y = - 0 , 05 x + 0 , 525 , g 1 x , y = - 0 , 5 x + 0 , 75 , f 2 x , y = 0 , 46 x - 0 , 15 y + 0 , 27 , g 2 x , y = 0 , 39 x + 0 , 38 y + 0 , 105 , f 3 x , y = 0 , 47 x - 0 , 15 y + 0 , 265 , g 3 x , y = 0 , 17 x + 0 , 42 y + 0 , 465 , f 4 x , y = 0 , 43 x + 0 , 26 y + 0 , 29 , g 4 x , y = - 0 , 25 x + 0 , 45 y + 0 , 625 , f 5 x , y = 0 , 42 x + 0 , 26 y + 0 , 29 , g 5 x , y = - 0 , 35 x + 0 , 31 y + 0 , 525 .

#define TREE

За последним #ifdef -блоком вставляем следующий код:

//Дерево #ifdef TREE const int n = 100000 ; const int w = 620 , h = 620 ; const int xc = 0 , yc = 10 ; const int l = 600 ; const int m = 6 ; const double s = {0 , 0.1 , 0.2 , 0.4 , 0.6 , 0.8 }; const double f = {{0.0 , 0.0 , 0.55 }, {-0.05 , 0.0 , 0.525 }, {0.46 , -0.15 , 0.27 }, {0.47 , -0.15 , 0.265 }, {0.43 , 0.26 , 0.29 }, {0.42 , 0.26 , 0.29 }}; const double g = {{0.0 , 0.6 , 0.0 }, {-0.5 , 0.0 , 0.75 }, {0.39 , 0.38 , 0.105 }, {0.17 , 0.42 , 0.465 }, {-0.25 , 0.45 , 0.625 }, {-0.35 , 0.31 , 0.525 }}; #endif

Результат работы скомпилированной программы - это изображение, приведённое ниже:

Последнее изображение, которое мы построим, руководствуясь книгой Седжвика, - это изображение коралла. Нам потребуются 3 пары итерационных функций. Их индексы 0, 1, 2 будут выбираться с вероятностями 0,4, 0,15, 0,45 соответственно. Итерационные функции приведены ниже.

F 0 x , y = 0 , 3077 x - 0 , 5315 y + 0 , 8863 , g 0 x , y = - 0 , 4615 x - 0 , 2937 y + 1 , 0962 , f 1 x , y = 0 , 3077 x - 0 , 0769 y + 0 , 2166 , g 1 x , y = 0 , 1538 x - 0 , 4476 y + 0 , 3384 , f 2 x , y = 0 , 5455 y + 0 , 0106 , g 2 x , y = 0 , 6923 x - 0 , 1958 y + 0 , 3808 .

Заменяем инструкцию #define инструкцией

#define CORAL

За последним #ifdef -блоком вставляем новый блок:

//Коралл #ifdef CORAL const int n = 100000 ; const int w = 620 , h = 620 ; const int xc = 10 , yc = 10 ; const int l = 600 ; const int m = 3 ; const double s = {0 , 0.4 , 0.55 }; const double f = {{0.3077 , -0.5315 , 0.8863 }, {0.3077 , -0.0769 , 0.2166 }, {0.0 , 0.5455 , 0.0106 }}; const double g = {{-0.4615 , -0.2937 , 1.0962 }, {0.1538 , -0.4476 , 0.3384 }, {0.6923 , -0.1958 , 0.3808 }}; #endif

Вот какое изображение получаем в результате компиляции и выполнения программы:

Заключение

Не знаю, как вам, а мне было интересно наблюдать за тем, как наборы математических формул "превращается" в весьма забавные изображения. А ещё меня удивляет то, что те, кто всё это придумали, смогли подобрать вероятности и константы, участвующие в итерационных функциях, таким образом, чтобы добиться таких удивительных картин! Методика подбора всех этих чисел (за исключением случая треугольника Серпиньского) мне совершенно непонятна!

Отмечу, что, судя по изображениям, треугольник Серпиньского и папоротник Барнсли являются фракталами. Скорее всего, то же самое можно сказать про "дерево" и "коралл", но их фрактальная природа, пожалуй, чуть менее очевидна.

По приведённой ниже ссылке, как всегда, можно скачать исходный код рассмотренной в статье программы. В файле main.c имеются четыре инструкции #define , каждая из которых соответствует одному из четырёх изображений. Три из них закомментированы. Ясно, что для того, чтобы перейти от одного изображения к другому, требуется закомментировать незакомментированную инструкцию и раскомментировать одну из закомментированных. Ну, Вы поняли...

А ещё с помощью несложного алгоритма можно добиться того, чтобы рассмотренные в статье изображения плавно "превращались" друг в друга. Но это уже тема для отдельной статьи .




















Назад Вперёд

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

Учебник: Геометрия, 7-9: учебник для общеобразовательных учреждений / (Л.С. Атанасян, В.Ф. Бутузов, С.Б. Кадомцев и др.) – 16 изд. – М.: Просвещение, 2011.

Цели урока:

  1. дать представление о новом классе задач на построение;
  2. рассмотреть наиболее простые задачи на построение;
  3. научить учащихся решать такие задачи.

Задачи:

Образовательный аспект:

      • дать представление о новом классе задач – построение геометрических с помощью циркуля и линейки без масштабных делений;
      • формировать практические умения работы;
      • расширить знания об истории геометрии.

Развивающий аспект:

  • развитие навыков самоконтроля;
  • формирование ИКТ – компетентности;
  • формирование логического мышления.

Воспитательный аспект:

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

Тип урока: комбинированный.

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

Этапы урока:

  • подготовка к активной учебной деятельности;
  • применение знаний;
  • подведение итогов и рефлексия;
  • информация о домашнем задании.

Оборудование:

  • Учебное пособие, тетрадь, карандаш, авторучка, линейка, циркуль, раздаточный материал (КИМ);
  • Компьютер, с минимальными техническими требованиями: Windows 95/98/ME/NT/2000/XP, 7.
  • Муьтимедийный проектор, экран.

Ресурсы урока:

  • тестовые задания (КИМ) приложение 1 ;
  • презентация;
  • оценка степени усвоения материала приложение 3 .

План урока:

Этап урока Цель урока Время
1. Организационный момент(слайды 1-2) Сообщение темы урока;Постановка цели урока;Сообщение этапов урока. 2 мин.
2. Повторение. Проверка домашнего задания.(слайд 3) Проверка теоретических знаний учащихся по теме окружность при выполнении теста. 5 мин.
3. Подготовка учащихся к восприятию нового материала.(слайды 4-8) Актуализация опорных знаний 10 мин.
4. Изучение нового материала(слайды 9-19) Отработка навыков решения простейших задач на построение циркулем и линейкой, рассмотренных в учебнике. 25 мин.
5. Итог урока. Подведение итогов урока. 2 мин.
6. Домашнее задание.(слайд 20) Инструктаж по домашнему заданию. 1 мин.

ХОД УРОКА

1. Организационный момент:

Тема сегодняшнего урока - «Примеры задач на построение» (слайд 1).

Цель урока – рассмотреть наиболее простые задачи на построение, которые решаются только с помощью циркуля и линейки без делений; научиться решать их (слайд 2).

2. Повторение. Проверка домашнего задания:

Мы с вами изучили тему « Окружность» и сегодня проверим с помощью теста ваши знания. Выполнить задание теста (каждому раздаются КИМы с тестовым заданием). Для каждого вопроса выберите правильный вариант ответа. Самостоятельно оцените свои знания, подсчитав количество верных ответов. Если верных ответов 6 - оценка «5», если верных ответов 5 – оценка «4», если верных ответов 4 – оценка «3», меньшее количество верных ответов – оценка « 2».

(Верные ответы на слайде 3 презентации).

3. Подготовка учащихся к восприятию нового материала:

Вводная беседа учителя:

Мы уже имели дело с геометрическими построениями: проводили прямые, откладывали отрезки, равные данным, чертили углы, треугольники и другие фигуры с помощью различных инструментов. При построении отрезка заданной длины использовалась линейка с миллиметровыми делениями, а при построении угла заданной градусной меры – транспортир.

В домашней работе у вас была такая задача:

Начертите треугольник АВС такой, что АВ = 3,6 см, АС = 2,7 см, А = 48°. Какие инст рументы вы использовали для решения этой задачи?

Итак, мы использовали линейку с миллиметровыми делениями и транспортир. Но есть такие задачи, в которых бывает оговорено, с помощью каких инструментов нужно построить предлагаемую геометрическую фигуру (слайд 4-5).

Задача 1. С помощью циркуля и линейки без делений на данном луче от его начала отложить отрезок, равный данному. Чертёж на экране.

(Учащиеся предлагают варианты решений).

А теперь проверим ваше решение (см. слайд 6)

Таким образом, многие построения в геометрии могут быть выполнены с помощью только циркуля и линейки без делений (слайд 7).

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

Задачи на построение циркулем и линейкой являются традиционным материалом, изучаемым в курсе планиметрии. Обычно эти задачи решаются по схеме, состоящей из четырех частей (посмотреть с. 95–96 учебника). Сначала рисуют (чертят) искомую фигуру и устанавливают связи между данными задачи и искомыми элементами. Эта часть решения называется анализом . Она дает возможность составить план решения задачи.

Затем по намеченному плану выполняется построение циркулем и линейкой.

После этого нужно доказать , что построенная фигура удовлетворяет условиям задачи.

И наконец, необходимо исследовать , при любых ли данных задача имеет решение, и если имеет, то сколько решений.

В тех случаях, когда задача достаточно простая, отдельные части, например анализ или исследование, можно опустить (слайд 8).

В VII классе мы решим простейшие задачи на построение циркулем и линейкой, в других классах будем решать более сложные задачи.

4. Изучение нового материала:

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

Что можно делать с их помощью? Ясно, что линейка позволяет провести произвольную прямую, а также построить прямую, проходящую через две данные точки. С помощью циркуля можно провести окружность произвольного радиуса, а также окружность с центром в данной точке и радиусом, равным данному отрезку (слайд 9).

Выполняя эти несложные операции, мы сможем решить много интересных задач на построение (слайд 10):

  1. На данном луче от его начала отложить отрезок, равный данному.
  2. Отложить от данного луча угол, равный данному.
  3. Построить биссектрису данного неразвернутого угла.
  4. Построить прямую, проходящую через данную точку и перпендикулярную к прямой, на которой лежит данная точка.
  5. Построить середину данного отрезка.

Мы уже решили задачу № 1.

Теперь с помощью компьютера рассмотрим решение задачи № 2. Выполняйте соответствующие построения в тетради (слайды 11-12).

А теперь рассмотрим задачи № 3 – 5 (слайд 13-18).

(выполняются соответствующие построения и описания задач в тетради)

После выполнения работы, учитель обращает внимание учащихся на то, что такие задачи рассматривались в древности (слайд 19).

А теперь обратимся к истории геометрии. Древнегреческие математики достигли чрезвычайно большого искусства в геометрических построениях с помощью циркуля и линейки. Они доказали, что угол можно разделить и на четыре равных угла. Для этого нужно разделить его пополам, а затем построить биссектрису каждой половинки. А можно ли с помощью циркуля и линейки разделить угол на три равные части? Эта задача, получившая название задачи о трисекции угла, в течение многих веков привлекала внимание математиков. Однако она не поддавались их усилиям. Лишь в прошлом веке было доказано, что для произвольного угла такое построение невозможно.

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

5. Подведение итогов урока:

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

  1. Оцените степень сложности урока. Вам было на уроке:
    • легко;
    • обычно;
    • трудно
  2. Оцените степень вашего усвоения материала:
    • усвоил полностью, могу применить;
    • усвоил полностью, но затрудняюсь в применении;
    • усвоил частично;
    • не усвоил.

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

6. Домашнее задание:

  • ответить на вопросы 17–21 на стр. 50;
  • решить задачи №№ 153, 154 (слайд 20).

Src="https://present5.com/presentation/3/178794035_430371946.pdf-img/178794035_430371946.pdf-1.jpg" alt=">Построение с помощью линейки и циркуля Геометрия ">

Src="https://present5.com/presentation/3/178794035_430371946.pdf-img/178794035_430371946.pdf-2.jpg" alt="> Построить отрезок равный данному Ú Задача А В "> Построить отрезок равный данному Ú Задача А В На данном луче от его начала С отложить отрезок, равный данному Ú Решение 1. Изобразим фигуры, данные в D условии задачи: луч ОС и отрезок АВ О 2. Затем циркулем построим окружность радиуса АВ и с центром О. 3. Эта окружность пересечёт луч ОС в некой точке D. Отрезок OD – искомый.

Src="https://present5.com/presentation/3/178794035_430371946.pdf-img/178794035_430371946.pdf-3.jpg" alt="> Построение угла равного данному Рассмотрим треугольники "> Построение угла равного данному Рассмотрим треугольники Ú АВС и ОDE. Задача В Отрезки АВ и АС являются равный Отложить от данного луча угол, данному Ú радиусами окружности с Решение 1. центром А, савершиной А и луч и ОЕ Построим угол отрезки OD ОМ А С 2. – радиусами окружности с Проведем окружность произвольного центром О. Таквершине А данного радиуса с центром в как по угла. 3. построениюпересекает стороны Эта окружность эти окружности имеют равные радиусы, то угла в точках В и С. 4. АВ=OD, AC=OE. Также же Затем проведём окружность того по Е радиуса с центром в начале данного построению ВС=DE. М луча ОМ. О D Следовательно, треугольники 5. Она пересекает луч в точке D. 6. равны по построим окружность с После этого 3 сторонам. Поэтому центром D, радиус которой равен ВС 7. угол DOEс= углу BAC. Т. е. Окружности центрами О и D построенный угол МОЕ равен пересекаются в двух точках. Одну из углу А. буквой Е них назовём 8. Докажем, что угол МОЕ - искомый

Src="https://present5.com/presentation/3/178794035_430371946.pdf-img/178794035_430371946.pdf-4.jpg" alt="> Построение биссектрисы угла Задача Ú"> Построение биссектрисы угла Задача Ú Рассмотрим треугольники Ú АСЕ и АВЕ. биссектрису угла Построить Они равны по Ú трём сторонам. АЕ – общая, Решение Е 1. АС и АВ равны как угол ВАС Изобразим данный радиусы 2. одной и тойокружность Проведём же окружности, В СЕ = ВЕ по построению. произвольного радиуса с С Ú Изцентром А. Она пересечёт равенства треугольников следует, что угол САЕ В и С стороны угла в точках = углу 3. ВАЕ, т. е. луч АЕдве Затем проведём – окружности одинакового биссектриса данного угла. А радиуса ВС с центрами в точках В и С 4. Докажем, что луч АЕ – биссектриса угла ВАС

Src="https://present5.com/presentation/3/178794035_430371946.pdf-img/178794035_430371946.pdf-5.jpg" alt="> Построение перпендикулярных прямых Ú Задача Даны прямая"> Построение перпендикулярных прямых Ú Задача Даны прямая и точка на ней. Построить прямую, проходящую через данную точку Р и перпендикулярную данной прямой. Ú Решение 1. Построим прямую а и точку М, принадлежащую этой прямой. 2. На лучах прямой а, исходящих из точки М, отложим равные отрезки МА и МВ. М а Затем построим две окружности с центрами А и В радиуса АВ. Они пересекутся в двух точках: P и Q. А B 3. Проведём прямую через точку М и одну из этих точек, например прямую МР, и докажем, что эта прямая искомая, т. Е. что она перпендикулярна к данной прямой. 4. В самом деле, так как медиана РМ равнобедренного треугольника РАВ Q является также высотой, то РМ перпендикулярна а.

Src="https://present5.com/presentation/3/178794035_430371946.pdf-img/178794035_430371946.pdf-6.jpg" alt="> Построение середины отрезка Задача Ú Построить середину данного"> Построение середины отрезка Задача Ú Построить середину данного отрезка Ú Решение Р 1. Пусть АВ – данный отрезок. 2. Построим две окружности с 21 центрами А и В радиуса АВ. Они пересекаются в точках Р и Q. О 3. Проведём прямую РQ. Точка О пересечения этой прямой с А B отрезком АВ и есть искомая середина отрезка АВ 4. В самом деле, треугольники АРQ и ВРQ равны по трём сторонам, поэтому угол 1 = Q углу 2 5. Следовательно отрезок РО – биссектриса равнобедренного треугольника АРВ, а значит, и медиана, т. Е. точка О – середина отрезка АВ.

Если вполне естественно, что с допущением большего разнообразия инструментов оказывается возможным решать более обширное множество задач на построение, то можно было бы предвидеть, что, напротив, при ограничениях, налагаемых на инструменты, класс разрешимых задач будет суживаться. Тем более замечательным нужно считать открытие, сделанное итальянцем Маскерони (1750-1800): все геометрические построения, выполнимые с помощью циркуля и линейки, могут быть выполнены с помощью одного только циркуля. Следует, конечно, оговорить, что провести на самом деле прямую линию через две данные точки без линейки невозможно, так что это основное построение не покрывается теорией Маскерони. Вместо того приходится считать, что прямая задана, если заданы две ее точки. Но с помощью одного лишь циркуля удается найти точку пересечения двух прямых, заданных таким образом, или точку пересечения прямой с окружностью.

Вероятно, простейшим примером построения Маскерони является удвоение данного отрезка АВ. Решение было уже дано на стр. 174-175. Далее, на стр. 175-176 мы научились делить данный отрезок пополам. Посмотрим теперь, как разделить пополам дугу окружности АВ с центром О. Вот описание этого построения (рис. 47). Радиусом АО проводим две дуги с центрами A и В. От точки О откладываем на этих дугах две такие дуги ОР и OQ, что OP = OQ = АВ . Затем находим точку R пересечения дуги с центром Р и радиусом РВ и дуги с центром Q и радиусом QA. Наконец, взяв в качестве радиуса отрезок OR, опишем дугу с центром Р или Q до пересечения с дугой AВ - точка пересечения и является искомой средней точкой дуги АВ. Доказательство предоставляем читателю в качестве упражнения.

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

  1. Провести окружность, если заданы ее центр и радиус.
  2. Найти точки пересечения двух окружностей.
  3. Найти точки пересечения прямой и окружности.
  4. Найти точку пересечения двух прямых.

Любое геометрическое построение (в обычном смысле, с допущением циркуля и линейки) составляется из выполнения конечной последовательности этих элементарных построений. Что первые два из них выполнимы с помощью одного циркуля, ясно непосредственно. Более трудные построения 3 и 4 выполняются с использованием свойств инверсии, рассмотренных в предыдущем пункте.

Обратимся к построению 3: найдем точки пересечения данного круга С с прямой, проходящей через данные точки А и В. Проведем дуги с центрами А и В и радиусами, соответственно равными АО и ВО, кроме точки О, они пересекутся в точке Р. Затем построим точку Q, обратную точке Р относительно окружности С (см. построение, описанное на стр. 174). Наконец, проведем окружность с центром Q и радиусом QO (она непременно пересечется с С): ее точки пересечения Х и Х" окружностью С и будут искомыми. Для доказательства достаточно установить, что каждая из точек X и X" находится на одинаковых расстояниях от О и P (что касается точек А и В, то аналогичное их свойство сразу вытекает из построения). Действительно, достаточно сослаться на то обстоятельство, что точка, обратная точке Q, отстоит от точек X и Х" на расстояние, равное радиусу круга С (см. стр. 173). Стоит отметить, что окружность, проходящая через точки X, X" и О, является обратной прямой АВ в инверсии относительно окружности С, так как эта окружность и прямая АВ пересекаются с С в одних и тех же точках. (При инверсии точки основной окружности остаются неподвижными.) Указанное построение невыполнимо только в том случае, если прямая АВ проходит через центр С. Но тогда точки пересечения могут быть найдены посредством построения, описанного на стр. 178, как середины дуг С, получающихся, когда мы проводим произвольную окружность с центром В, пересекающуюся с С в точках В 1 и В 2 .

Метод проведения окружности, обратной прямой," соединяющей две данные точки, немедленно дает и построение, решающее задачу 4. Пусть прямые даны точками А, В и A", В" (рис. 50) Проведем произвольную окружность С и с помощью указанного выше метода построим окружности, обратные прямым АВ и А"В". Эти окружности пересекаются в точке О и еще в одной точке Y, Точка X, обратная точке Y, и есть искомая точка пересечения: как ее построить - уже было разъяснено выше. Что X есть искомая точка, это ясно из того факта, что Y есть единственная точка, обратная точке, одновременно принадлежащей обеим прямым АВ и А"В", следовательно, точка X, обратная Y, должна лежать одновременно и на АВ, и на А"В".

Этими двумя построениями заканчивается доказательство эквивалентности между построениями Маскерони, при которых разрешается пользоваться только циркулем, и обыкновенными геометрическими построениями с циркулем и линейкой.

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

Пусть Л- произвольная точка на окружности К. Так как сторона правильного вписанного шестиугольника равна радиусу круга, то не представит труда отложить на К такие точки В, С, D, что АВ = ВС = CD = 60° (рис. 51). Проводим дуги с центрами А и D радиусом, равным АС; пусть они пересекаются в точке X. Тогда, если О есть центр K, дуга с центром А и радиусом ОХ пересечет К в точке F, являющейся серединой дуги ВС (см. стр. 178). Затем радиусом, равным радиусу K, опишем дуги с центром F, пересекающиеся с K в точках G и H. Пусть Y есть точка, расстояния которой от точек G и Н равны ОХ и которая отделена от X центром О. В таком случае отрезок AY как раз и есть сторона искомого пятиугольника. Доказательство предоставляется читателю в качестве упражнения. Интересно отметить, что при построении используются только три различных радиуса.

В 1928 г. датский математик Ельмслев нашел в книжной лавке в Копенгагене экземпляр книги под названием Euclides Danicus , опубликованной в 1672 г. никому не известным автором Г. Мором. По титульному листу можно было сделать заключение, что это просто один из вариантов евклидовых "Начал", снабженный, может быть, редакторским комментарием. Но по внимательном рассмотрении оказалось, что в ней содержится полное решение проблемы Маскерони, найденное задолго до Маскерони.

Упражнения. В дальнейшем дается описание построений Мора. Проверьте их правильность. Почему можно утверждать, что они решают проблему Маскерони?

Вдохновляясь результатами Маскерони, Якоб Штейнер (1796-1863) предпринял попытку исследования построений, выполнимых с помощью одной только линейки. Конечно, одна только линейка не выводит за пределы данного числового поля, и потому она недостаточна для выполнения всех геометрических построений в классическом их понимании. Но тем более замечательны результаты, полученные Штейнером при введенном им ограничении - пользоваться циркулем только один раз. Он доказал, что все построения на плоскости, выполнимые с помощью циркуля и линейки, выполнимы также с помощью одной линейки при условии, что задан единственный неподвижный круг вместе с центром. Эти построения подразумевают применение проективных методов и будут описаны позднее (см. стр. 228).

* Без круга, и притом с центром, обойтись нельзя. Например, если дан круг, но не указан его центр, то найти центр с помощью одной линейки невозможно. Мы сейчас докажем это, ссылаясь, однако, на факт, который будет установлен позднее (см. стр. 252): существует такое преобразование плоскости самой в себя, что а) заданная окружность остается неподвижной, b) всякая прямая линия переходит в прямую, с) центр неподвижной окружности не остается неподвижным, а смещается. Само существование такого преобразования свидетельствует о невозможности построить центр данной окружности, пользуясь одной линейкой. В самом деле, какова бы ни была процедура построения, она сводится к ряду отдельных этапов, заключающихся в проведении прямых линий и нахождении их пересечений друг с другом или с данной окружностью. Представим себе теперь, что вся фигура в целом - окружность, а все прямые, проведенные по линейке при выполнении построения центра, подвергнуты преобразованию, существование которого мы здесь допустили. Тогда ясно, что фигура, полученная после преобразования, также удовлетворяла бы всем требованиям построения; но указываемое этой фигурой построение приводило бы к точке, отличной от центра данной окружности. Значит, построение, о котором идет речь, невозможно.

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

С помощью линейки можно провести:

    произвольную прямую;

    произвольную прямую, проходящую через данную точку;

    прямую, проходящую через две данные точки.

С помощью циркуля можно описать из данного центра окружность данного радиуса.

Циркулем можно отложить отрезок на данной прямой от данной точки.

Рассмотрим основные задачи на построение.

Задача 1. Построить треугольник с данными сторонами а, b, с (рис.1).

Решение. С помощью линейки проведем произвольную прямую и возьмем на ней произвольную точку В. Раствором циркуля, равным а, описываем окружность с центром В и радиусом а. Пусть С - точка ее пересечения с прямой. Раствором циркуля, равным с, описываем окружность из центра В, а раствором циркуля, равным b - окружность из центра С. Пусть А - точка пересечения этих окружностей. Треугольник ABC имеет стороны, равные a, b, c.

Замечание. Чтобы три отрезка прямой могли служить сторонами треугольника, необходимо, чтобы больший из них был меньше суммы двух остальных (а < b + с).

Задача 2.

Решение. Данный угол с вершиной А и луч ОМ изображены на рисунке 2.

Проведем произвольную окружность с центром в вершине А данного угла. Пусть В и С - точки пересечения окружности со сторонами угла (рис.3, а). Радиусом АВ проведем окружность с центром в точке О - начальной точке данного луча (рис.3, б). Точку пересечения этой окружности с данным лучом обозначим С 1 . Опишем окружность с центром С 1 и радиусом ВС. Точка В 1 пересечения двух окружностей лежит на стороне искомого угла. Это следует из равенства Δ ABC = Δ ОВ 1 С 1 (третий признак равенства треугольников).

Задача 3. Построить биссектрису данного угла (рис.4).

Решение. Из вершины А данного угла, как из центра, проводим окружность произвольного радиуса. Пусть В и С - точки ее пересечения со сторонами угла. Из точек В и С тем же радиусом описываем окружности. Пусть D - точка их пересечения, отличная от А. Луч AD делит угол А пополам. Это следует из равенства Δ ABD = Δ ACD (третий признак равенства треугольников).

Задача 4. Провести серединный перпендикуляр к данному отрезку (рис.5).

Решение. Произвольным, но одинаковым раствором циркуля (большим 1/2 АВ) описываем две дуги с центрами в точках А и В, которые пересекутся между собой в некоторых точках С и D. Прямая CD будет искомым перпендикуляром. Действительно, как видно из построения, каждая из точек С и D одинаково удалена от А и В; следовательно, эти точки должны лежать на серединном перпендикуляре к отрезку АВ.

Задача 5. Разделить данный отрезок пополам. Решается так же, как и задача 4 (см. рис.5).

Задача 6. Через данную точку провести прямую, перпендикулярную данной прямой.

Решение. Возможны два случая:

1) данная точка О лежит на данной прямой а (рис. 6).

Из точки О проводим произвольным радиусом окружность, пересекающую прямую а в точках А и В. Из точек А и В тем же радиусом проводим окружности. Пусть О 1 - точка их пересечения, отличная от О. Получаем ОО 1 ⊥ AB. В самом деле, точки О и О 1 равноудалены от концов отрезка АВ и, следовательно, лежат на серединном перпендикуляре к этому отрезку.



Просмотров