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

23.09.2019

Данная статья написана по материалам одного из разделов книги Седжвика, Уэйна и Дондеро "Программирование на языке 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 , каждая из которых соответствует одному из четырёх изображений. Три из них закомментированы. Ясно, что для того, чтобы перейти от одного изображения к другому, требуется закомментировать незакомментированную инструкцию и раскомментировать одну из закомментированных. Ну, Вы поняли...

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

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

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

Когда введены координаты, нетрудно показать, что точки, допускающие построение из точек имеют координаты во множестве чисел, созданном из координат посредством операций и [см. Муаз (1963) или упражнения к разделу 6.3]. Квадратные корни, конечно, появляются вследствие теоремы Пифагора: если построены точки и тогда построено расстояние между ними (раздел 1.6 и рисунок 2.4). Обратно, возможно построение для любой заданной длины I (упражнение 2.3.2).

Рисунок 2.4: Построение расстояния

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

Невозможность решения этих задач построениями с помощью линейки и циркуля оставалась недоказанной до девятнадцатого столетия. Что касается удвоения куба и трисекции угла, то невозможность показана Вантцелем (1837). Честь решения этих задач, над которыми бились лучшие математики в течение 2000 лет, редко приписывают Вантцелю, возможно, потому, что его методы вытеснила более мощная теория Галуа.

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

В том, что уже был сделан важный шаг, когда Эрмит (1873) доказал трансцендентность Доступные доказательства обоих этих результатов можно найти у Клейна (1924). Последующая карьера Линдемана была математически непримечательной, даже смущающей. Отвечая скептикам, которые полагали, что его успех с был счастливой случайностью, он нацелился на самую известную нерешенную задачу в математике «последнюю теорему Ферма» (о возникновении этой задачи см. главу 11). Его усилия кончились неудачей в ряде неубедительных статей, каждая из которых исправляла ошибку в предыдущей. Фрич (1984) написал интересную биографическую статью о Линдемане.


I. Введение.

II. Главная часть:

    Построение отрезка, равного произведению двух других с помощью циркуля и линейки:

    1. первый способ построения;

      второй способ построения;

      третий способ построения,

d) четвёртый способ построения.

2) Построение отрезка, равного отношению двух других с помощью циркуля и линейки:

      первый способ построения;

      второй способ построения.

Заключение.

Приложение.

Введение

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

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

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

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

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

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

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

ОБЩАЯ ПРОБЛЕМА І

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

Примечание:

предполагается:

    Линейка - односторонняя, без делений.

    Задан отрезок единичной длины.

Исследование.

1.Рассмотрим прямые y=2x-2 2 и y=3x-3 2 и попробуем найти координаты точки пересечения этих прямых геометрическим и аналитическим методами:

а
) геометрический метод (Рис.1 ) показал, что координаты точки А пересечения этих прямых: «5»-абсцисса, «6»- ордината, т.е. АЕ=5, АД=6.

б) аналитический метод данный результат подтверждает, т.е. А (5;6) - точка пересечения прямых.

Действительно, решив систему уравнений

y=6 А(5;6)- точка пересечения прямых.

2.Рассмотрим отрезок: ОВ=2, ОС=3, АД=6, АЕ=5.

Можно предположить, что АД=ОВ×ОС, т.к. 6=2×3; АЕ=ОВ+ОС, т.к. 5=2+3 ,где

2=ОВ-угловой коэффициент уравнения y=2x-2 2 , 3=ОС - угловой коэффициент уравнения y=3x-3 2 , АД=у А, ОД=х А - координаты точки А пересечения наших прямых.

Наше предположение проверим на общем примере аналитическим методом, т.е. на уравнениях прямых y=mx-m 2 и y=nx-n 2 (где m≠n) проверим, что точка пересечения прямых имеет координаты:

y=nx-n 2 nx-n 2 =mx-m 2 x=(m 2 -n 2)÷(m-n)=m+n и y=mx-m 2 =m(m+n)-m 2 =mn

координаты точки А пересечения прямых, где m и n – угловые коэффициенты этих прямых, ч.т.д.

3. Осталось найти метод построения отрезка. АД=ОВ×ОС=m∙n=y А - ординаты точки А пересечения прямых У=mx-m 2 и У=nx-n 2 , где m≠n и m=OB, n=OC- отрезки, отложенные на оси ох. А для этого мы должны найти метод построения прямых У=mx-m 2 и У=nx-n 2 . из рассуждений видно, что эти прямые должны пройти через точки В и С отрезков OB=m и OC=n, которые принадлежат оси ох.

Замечание 1. Вышеназванные обозначения отрезков соответствуют рис.1 «Приложения»

Первый способ построения отрезка AD=mn, где m>1ед., n>1ед., m≠n.

единичный отрезок

произвольный отрезок, m>1eд., n>1eд.

n произвольный отрезок, где m≠n.

Построение (Рис.2)

    Проведём прямую ОХ

    На ОХ отложим ОА 1 = m

    На ОХ отложим А 1 С 1 =1ед

    Построим С 1 В 1 =m, где С 1 В 1 ┴ ОХ

    Проведём прямую А 1 В 1 , уравнение которой y=mx-m 2 в координатных осях ХОУ (масштаб на осях одинаковый).

Примечание:


Рис.2

Замечание 1.

Действительно, тангенс угла наклона этой прямой tgά 1 = С 1 В 1 /А 1 С 1 =m/1ед=m, которая проходит через точку А 1 отрезка ОА 1 =m.

Анологично строим прямую, уравнение которой У=nx-n 2 .

6.На оси ОХ отложим ОА 2 =n (точка А 2 случайно совпала с точкой С1).

7.На оси ОХ отложим А 2 С 2 =1ед.

8.Строим В 2 С 2 =n, где В 2 С 2 ┴ ОХ.

9.Проведём прямую В 2 А 2 , уравнение которой У=nx-n 2 .

Замечание 2. Действительно, тангенс наклона этой прямой tg ά 2 =C 2 B 2 /A 2 C 2 =n/1ед=n, которая проходит через т. А 2 отрезка ОА 2 =n.

10. Получили т.А (m+n; mn) – точку пересечения прямых У=mx-m 2 и У=nx-n 2

11. Проведем АД, перпендикулярную ох, где Д принадлежит оси ох.

12. Отрезок АД=mn (ордината т. А), т.е. искомый отрезок.

Замечание 3. а) действительно, если в нашем примере, n=4ед., m=3 ед., то должно быть АД=mn=3ед.∙4ед.=12ед. У нас так и получилось: АД=12ед.; б) прямая В 1 В 2 в этом построении не использовалась. В В – тоже.

Существует ещё, по крайней мере, три разных способа построения отрезка АД=mn.

Второй способ построения отрезка АД= mn , где m >1ед, n >1ед, m и n –любые.

Анализ

Анализ ранее построенного чертежа (рис.2), где с помощью найденного способа построения прямых У=mx-m 2 и У=nx-n 2 нашли т.А (m+n; mn) (это первый способ), подсказывает, что т.А(m+n; mn) можно найти построением любой из этих прямых (У=mx-m 2 или У=nx-n 2) и перпендикуляра АД, где АД – перпендикуляр к ОХ, АД=mn, Д принадлежит оси ОХ. Тогда искомая точка А (m+n; mn) является точкой пересечения любой из этих прямых и перпендикуляра АД. Достаточно найти углы наклона этих прямых, тангенсы которых, согласно угловым коэффициентам, равны m и n, т.е. tg ά 1= m и tg ά 2 =n. Учитывая, что tg ά 1 =m/1ед=m и tg ά 2 =n/1ед=n, где 1ед-единичный отрезок, можно легко построить прямые, уравнения которых У=mx-m 2 и У=nx-n 2 .

единичный отрезок

n n>1ед., m и n-любые числа.

П

остроение (Рис.3)

Рис.3

1.Проведём прямую ОХ.

2.На оси ОХ откладываем отрезок ОА 1 =m.

3.На оси ОХ отложим отрезок А 1 Д=n.

4.На оси ОХ отложим отрезок А 1 С 1 =1ед.

5.Строим С 1 В 1 =m, где С 1 В 1 ┴ ОХ.

6.Проведём прямую А1В1, уравнение которой У=mx-m2, в координатных осях ХОУ (масштаб на осях одинаковый).

7.Востанавливаем перпендикуляр к ОХ в точке D.

8.Получаем точку А (m+n; mn) - точку пересечения прямой У=mx-m2 и перпендикуляра AD

9.Отрезок AD=mn, то есть искомый отрезок.

Вывод: Этот второй способ универсальнее первого способа, так как позволяет найти точу А(m+n;mn)и тогда, когда m=n>1ед., тогда координаты этой точки А(2m;m 2) и AD=m 2 .

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

Замечание: Действительно, если в нашем примере m=3ед., n=5ед., то должно быть AD=mn=3ед.×5ед.=15ед. У нас так и получилось: AD=15ед.

Третий способ построения отрезка AD = mn , где m >1ед, n >1ед и m n .

Используя рисунок №2, проведём штриховой линией прямую В 1 В 2 до пересечения с ОХ в точке Е € ОХ, и прямую В 1 В ┴ В 2 С 2 , тогда

В 1 В=С 1 С 2 =ОС 2 -ОС 1 =(n+1ед.)-(m+1ед)=n-m, а В 2 В=В 2 С 2 -В 1 С 1 =m-n => В 1 В=В 2 В=>∆В 1 ВВ 2 - равнобедренный, прямоугольный>∆ЕС 1 В 1 - равнобедренный, прямоугольный => ά=45º

Т.к. ОС 1 =m+1ед., а ЕС 1 =В 1 С 1 =m, то ОЕ=ОС 1 -ЕС 1 =m+1ед.-m=1ед.

Из рассуждений следует, что точки В 1 и В 2 можно найти по-другому, т.к. они являются точками пересечения прямой ЕВ 1 , проведённой под углом ά=45º к оси ОХ и перпендикуляров к ОХ: В 1 С 1 и В 2 С 2 , а ОЕ=1ед.Дальше, используя уже предыдущие методы будем иметь следующий способ построения.

Единичный отрезок.

n n>1ед., и m≠n.

Построение (Рис.4)

1.Проведём прямую ОХ.

5.Построим
ά=С 1 ЕВ 1 =45º, где В 1 - точка пересечения перпендикуляра С 1 В 1 со стороной ά=45º.

7.Отложим ОА 2 =n, где А 2 € ОХ.

8.Отложим А 2 С 2 =1ед., где С 2 € ОХ.

9.Восстановим перпендикуляр С 2 В 2 к оси ОХ в точке С 2 , где В 2 - точка пересечения перпендикуляра с прямой ЕВ 1 .

10.Проводим прямую А 2 В 2 , уравнение которой У=nx-n 2 , до пересечения с прямой А 1 В 1 в точке А.

11.Опускаем на ОХ из точки А перпендикуляр и получаем AD , равный mn, где D € ОХ, так как в координатных плоскостях осях ХОУ координаты точки А(m+n;mn).


Рис.4

Замечание: Недостаток данного способа такой же, как у первого способа построения, где построение возможно только при условии m≠n.

Четвёртый способ построения отрезка AD = mn , где m и n - любые, большие единичного отрезка.

Единичный отрезок.

n n>1ед., m и n- любые.

Построение (Рис.5)


Рис.5

1.Проведём прямую ОХ.

2.Отложим ОЕ=1ед., где Е € ОХ.

3.Отлтжим ЕС 1 =m, где С 1 € ОХ.

4.Восстановим перпендикуляр в точке С 1 к оси ОХ.

5.Построим ά=С 1 ЕВ 1 =45º, где В 1 - точка пересечения перпендикуляра С 1 В 1 со стороной ά=45º.

6.Отложив ОА 1 =m, проводим прямую А 1 В 1 , уравнение которой У=mx-m 2 , А € ОХ.

7.Отложим А 1 D=n, где D € OX.

8.Восстановим перпендикуляр в точке D до пересечения его в точке А с прямой А 1 В 1 , уравнение которой У=mx-m 2 .

9.Отрезок перпендикуляра AD = произведению отрезков m и n, то есть AD=mn, так как А (m+n; mn).

Замечание: Этот способ выгодно отличается от первого и третьего способов, где m≠n, так как имеем дело с любыми отрезками m и n, единичный отрезок может быть меньше только одного из них, участвующего в начале построения (у нас m>1ед.).

Общая проблема ІІ

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

Примечание:

единичный отрезок меньше отрезка делителя.

Первый способ построения отрезка n = k / m , где m >1ед.

Единичный отрезок.

Построение (Рис.6)

2.На ОУ отложим ОМ=k.

3. На ОХ отложим ОА 1 = m.

4.На ОХ отложим А 1 С 1 =1ед.

5.Построим С 1 В 1 =m, где С 1 В 1 ┴ ОХ.

6. Проведём прямую А 1 В 1 , уравнение которой y=mx-m 2 в координатных осях ХОУ (масштаб на осях одинаковый, равный 1ед.).

7.Восстановим перпендикуляр МА в точке М к оси ОУ, где А- точка пересечения МА с прямой А 1 В 1 (т.е. А € А 1 В 1).

8.Опустим перпендикуляр из точки А на ось ОХ до пересечения его с осью ОХ в точке D. Отрезок AD=ОМ=k=mn.

9.Отрезок А 1 D= n - искомый отрезок, равный n=k/m.

Рис.6

Доказательство:

1.Уравнение прямой А 1 В 1 действительно У=mx-m 2 , при У=0 имеем 0=mx-m 2 => x=m=OA 1, т а угловой коэффициент - tg

2.В ∆АDA 1 tg 1 D=AD/A 1 D=B 1 C 1 /A 1 C 1 =>A 1 D=AD×A 1 C 1 /B 1 C 1 =k×1ед./m=mn/m=n, т.е. А 1 D=n=k/m - искомый отрезок.

Замечание. Действительно, если в нашем примере m=3ед., k=15ед., то должно быть A 1 D=n=k/m=15ед./3ед.=5ед. У нас так и получилось.

Второй способ построения отрезка n = k / m , где m >1ед.

Единичный отрезок.



Рис.7

1.Строим координатные оси ХОУ.

2.На ОУ отложим ОМ=k.

3.Отложим ОЕ=1ед., где Е € ОХ.

4.Отложим ЕС 1 =m, где С 1 € ОХ.

5.Восстановим перпендикуляр в точке С 1 к оси ОХ.

6.Строим С 1 ЕВ 1 =45º, где В 1 - точка пересечения перпендикуляра С 1 В 1 со стороной угла С 1 ЕВ 1 = 45º.

7. На ОХ отложим ОА 1 = m.

8. Проведём прямую А 1 В 1 , уравнение которой y=mx-m 2 в координатных осях ХОУ (масштаб на осях одинаковый, равный 1ед.).

9.Восстановим перпендикуляр МА в точке М к оси ОУ, где А - точка пересечения МА с прямой А 1 В 1 (т.е. А € А 1 В 1).

10.Опустим перпендикуляр из точки А на ось ОХ до пересечения его с осью ОХ в точке D. Отрезок AD=ОМ=k=mn.

11.Отрезок А 1 D=n - искомый отрезок, равный n=k/m.

Доказательство:

1.∆В 1 С 1 Е - прямоугольный и равнобедренный, так как С 1 ЕВ 1 =45º =>В 1 С 1 =ЕС 1 =m.

2.А 1 С 1 =ОС 1 - ОА 1 =(ОЕ+ЕС1) - ОА 1 =1ед+m-m=1ед.

3.Уравнение прямой А 1 В 1 действительно У=mx-m 2 , при У=0 имеем 0=mx-m 2 => x=m=OA 1, а угловой коэффициент - tg

4.В ∆АDA 1 tg 1 D=AD/A 1 D=B 1 C 1 /A 1 C 1 => A 1 D=AD×A 1 C 1 /B 1 C 1 =k ×1ед./m=mn/m=n, т.е. А 1 D=n=k/m - искомый отрезок.

Заключение

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

Здесь нами было использовано практически все четыре этапа: анализ, построение, доказательство и исследование.

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

1. Если продлить прямые y=mx-m 2 и y=nx-n 2 (n>m>0) до пересечения с осью ОУ, то можно получить отрезки, равные m 2 , n 2 , n 2 - m 2 (Рис.8) , где ОК=m 2 , ОМ= n 2 , КМ= n 2 - m 2 .

Р
ис.8

Доказательство:

Если х=0, то y=0-m 2 =>ОК=m 2 .

Аналогично доказывается, что ОМ= n 2 =>КМ=ОМ-ОК= n 2 - m 2 .

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

3. В механике, термодинамике есть физические величины, например, работа (А=FS,A=PV), численно равные площадям прямоугольников, построенных в соответствующих координатных плоскостях, поэтому в задачах, где требуется, например, сравнить работы по площадям прямоугольников, очень просто это сделать, если эти площади представить в виде отрезков, численно равных площадям прямоугольников. А отрезки легко сравнить между собой.

4. Рассмотренный метод построения позволяет строить и другие отрезки, например, используя систему уравнений y=mx-m 3 и y=nx-n 3 , можно построить отрезки, имея данные m и n такие, как m 2 +mn+n 2 и mn(m+n), так как точка А пересечения прямых, заданных данной системой уравнений, имеет координаты (m 2 +mn+n 2 ; mn(m+n), а также можно построить отрезки n 3 , m 3 , и разность n 3 - m 3 , получаемые на ОУ в отрицательной области при Х=0.

Произведения . ... помощи циркуля и линейки . Алгоритм деления отрезка АВ пополам: 1) поставить ножку циркуля в точку А; 2) установить раствор циркуля равным длине отрезка ...

  • Биография Пифагора

    Биография >> Математика

    ... построением правильных геометрических фигур с помощью циркуля и линейки . ... помощи циркуля и линейки . Со времени возникновения задачи прошло более двух ... равна b/4+p, один катет равен b/4, а другой b/2-p. По теореме Пифагора имеем:(b/4+p)=(b/4)+(b/4-p)или ...

  • Команда предназначена для последовательного построения кривых и прямых линий так, что конец предыдущего объекта является началом следующего объекта. Построение геометрии этим способом возможно также из меню Инструменты → Геометрия

    Параметр Описание
    С помощью этой кнопки завершается создание цепочки геометрических элементов. При этом производится замыкание контура из этих элементов путем соединения последнего геометрического элемента с первой точкой цепочки. Эта кнопка активна в том случае, когда возможно осуществить замыкание цепочки. Например, цепочка не получится, если последовательно построены только 2 прямых отрезка - их можно замкнуть только 3 прямым отрезком - получится треугольник (минимальная фигура). Но в случае кривой Безье - достаточно 2 точек, чтобы с помощью третьей точки замкнуть контур
    Отрезок Команды создания прямых отрезков
    С помощью этой кнопки производится построение произвольного прямого отрезка, параллельного выбранной прямой линии. Эта линия может находиться вне строящейся цепочки
    С помощью этой кнопки производится построение прямого отрезка, перпендикулярного выбранной прямой линии. Эта линия может находиться вне строящейся цепочки
    С помощью этой кнопки производится построение прямого отрезка, касательного выбранной кривой. Эта кривая должна находиться вне строящейся цепочки. В некоторых случаях программа может предложить несколько вариантов построения касательных отрезков. Для выбора одного из них или всех вместе необходимо использовать кнопки Предыдущий или Следующий объект или, указывая мышкой на каждый нужный вариант, нажимать левую кнопку мыши. Если задать конкретную длину отрезка в поле Длина , то появляется возможность строить касательный отрезок, вторая точка которого может не лежать на выбранной кривой
    Дуга Команды создания дуг
    С помощью этой кнопки производится построение произвольной дуги путем последовательного указания трех точек в графическом окне или на панели параметров
    С помощью этой кнопки производится построение дуги, касательной предыдущему элементу в цепочке
    Лекальная кривая Команды создания кривых
    С помощью этой кнопки производится построение сплайна по ряду точек
    Сплайн по полюсам С помощью этой кнопки производится построение сплайна по ряду ограничительных точек. При этом можно задавать Вес точки и Порядок Вес определяет «силу притяжения» кривой к точке кривой. Чем больше вес, тем ближе к точке кривая. По сути это параметр кривизны кривой (чем больше кривизна кривой, тем меньше радиус изгиба, и наоборот). Параметр Порядок определяет минимальное количество точек, по которому будет построена кривая. Минимальный порядок 3 - позволяет построить кривую по трем точкам

    Построение геометрии с помощью инструмента Линия

    Команда Линия предназначена для последовательного построения прямых линий и дуг так, что конец предыдущего объекта является началом следующего объекта. Панель параметров этой команды содержит вырожденное меню команды . Построение геометрии этим способом возможно также из меню Инструменты → Геометрия → Линия . Панель параметров этой кнопки содержит следующие команды:

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

    Построение кривых и ломаной линии

    Построение кривых возможно из менюИнструменты → Геометрия → Кривые . Построение ломаной линии возможно из менюИнструменты → Геометрия → Ломаная . Кривая Безье представляет собой частный случай NURBS кривой. Все эти команды находятся на панели инструментов Геометрия. Способы их построения перечислены ниже:

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

    У сплайна возможно расширенное редактирование характерных точек. Для этого предназначена кнопка Редактировать точки на панели параметров. Также эта команда автоматически вызывается при двойном щелчке левой кнопки мыши на уже построенной кривой. При этом точки кривой дополняются касательными отрезками, которые проходят через характерные точки кривой.

    Кривую можно разбить на части с помощью команд меню Разбить → Кривую и Разбить → Кривую на N частей . Первая команда позволяет разбить выбранную кривую на 2 части в указанной точке. Вторая кривая позволяет разбить кривую на несколько равных частей. Для этого необходимо выбрать количество частей на панели параметров и указать кривую, которую необходимо разбить.

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

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

    Точки кривой можно привязывать к другим объектам и другим точкам кривой с помощью глобальных и локальных привязок. Включение необходимой локальной привязки в процессе перемещения характерной точки возможно при нажатии правой кнопки мыши (или сочетании клавиш SHIFT+F10) и выборе привязки из выпадающего подменю Привязка .

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

    Если построить 2 сплайна по полюcам, то можно соединить их концы так, чтобы обеспечивалась непрерывность («гладкость») в точке перехода.

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

    Добавить характерную точку можно с помощью простого щелчка левой кнопки мыши на нужном участке кривой.

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

    Интерфейс работы со сплайнами по полюсам аналогичен интерфейсу работы с обычными сплайнами. На панели параметров можно также создать как Разомкнутый объект так и Замкнутый объект. И с помощью кнопки Редактировать точки можно также исправить форму кривой, двигая характерные точки. Точно так же, как и с кривыми Безье работают привязки, совершается перемещение точек и разбиение кривой на части.

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

    Интерфейс работы с ломаными линиями аналогичен интерфейсу работы с кривыми. На панели параметров можно также создать как Разомкнутый объект , так и Замкнутый объект . И с помощью кнопки Редактировать точки можно также исправить форму ломаной линии, двигая характерные точки. Точно так же, как и с кривыми, работают привязки и совершается перемещение точек. Отличительной особенностью ломаной линии является то, что ее можно разбить на отдельные элементы с помощью команды меню Редактор → Разрушить . После этого отдельные элементы ломаной линии можно перемещать или удалять, без воздействия на другие элементы.

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

    Вероятно, простейшим примером построения Маскерони является удвоение данного отрезка Решение было уже дано на стр. 185. Далее, на стр. 186 мы научились делить данный отрезок пополам. Посмотрим теперь, как разделить пополам дугу окружности с центром О. Вот описание этого построения. Радиусом проводим две дуги с центрами От точки О откладываем на этих дугах две такие дуги и что Затем находим точку пересечения дуги с центром Р и радиусом и дуги с центром и радиусом Наконец, взяв в качестве радиуса отрезок опишем дугу с центром Р или до пересечения с дугой точка пересечения и является искомой средней точкой дуги Доказательство предоставляем читателю в качестве упражнения.

    Рис. 48. Пересечение окружности и прямой, не проходящей через центр

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

    1. Провести окружность, если заданы центр и радиус.

    2. Найти точки пересечения двух окружностей.

    3. Найти точки пересечения прямой и окружности.

    4. Найти точку пересечения двух прямых.

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

    Обратимся к построению 3: найдем точки пересечения данной окружности С с прямой, проходящей через данные точки Проведем дуги с центрами и радиусами, соответственно равными и кроме точки О, они пересекутся в точке Р. Затем построим точку обратную точке Р относительно окружности С (см. построение, описанное на стр. 186). Наконец, проведем окружность с центром и радиусом (она непременно пересечется с С): его точки пересечения с окружностью С и будут искомыми. Для доказательства достаточно установить, что каждая из точек находится на одинаковых расстояниях от (что касается точек то аналогичное их свойство сразу вытекает из построения). Действительно, Достаточно сослаться на то обстоятельство, что точка, обратная точке отстоит от точек на расстояние, равное радиусу окружности С (см. стр. 184). Стоит отметить, что окружность, проходящая через точки является обратной прямой в инверсии относительно круга С, так как эта окружность и прямая пересекаются

    Рис. 49. Пересечение окружности и прямой, проходящей через центр

    с С в одних и тех же точках. (При инверсии точки основной окружности остаются неподвижными.)

    Указанное построение невыполнимо только в том случае, если прямая проходит через центр С. Но тогда точки пересечения могут быть найдены посредством построения, описанного на стр. 188, как получающихся, когда мы проводим произвольную окружность с центром В, пересекающуюся с С в точках Метод проведения окружности, обратной прямой, соединяющей две данные точки, немедленно дает и построение, решающее задачу 4. Пусть прямые даны точками (рис. 50).

    Рис. 50. Пересечение двух прямых

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

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

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

    Пусть А - произвольная точка на окружности К. Так как сторона правильного вписанного шестиугольника равна радиусу круга, то не представит труда отложить на К такие точки что



    Похожие статьи
     
    Категории