
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.1 Yaglom: новый подход к интерактивной геометрии
Компьютеры предоставляют много новых возможностей, в частности, в традиционной деятельности. Привычные всем геометрические «построения циркулем и линейкой» теперь можно совершать и на экране. Представляемая оболочка Yaglom, основанная на библиотеке
MoebInv, имеет ряд уникальных черт существенно отличающих её от других программ.
Программа названа в честь советского математика Исаака Моисевича Яглома, который изучал и популяризовал различные неевклидовые геометрии в многочисленных работах. В частности, эта программа позволит сделать наглядными примеры из книги Яглома [11] и развить дальнейшие самостоятельные исследования по обозначенным направлениям.
1.1 Интерактивная геометрия и Yaglom
Вам возможно уже встречались какие-то из многочисленных приложений для интерактивной геометрии (ПИГ): GeoGebra,
CaRMetal, Kig,
Dr. Geo и т.п.
Не вдаваясь пока в технические детали приведем в пример несколько наиболее бросающихся в глаза отличий:
- Другие ПИГ различают такие геометрические объекты как точки, прямые, окружности. Оболочка Yaglom работает только с циклами: циклы нулевого радиуса представляют точки, бесконечного радиуса—прямые, циклы конечного ненулевого радиуса могут представлять окружности.
- Другие ПИГ обычно работают в контексте Евклидовой геометрии. Оболочка Yaglom поддерживает эллиптические, параболические и гиперболические циклы. Всего одним щелчком мыши можно перенести построение из одной ситуации в любую другую.
- Другие ПИГ обычно имеют панель инструментов вроде такой:
Здесь каждая иконка обозначает конкретное геометрическое построение: прямая через две точки, середина отрезка, перпендикуляр к прямой опущенный из точки, и т.д.
А вот в оболочке Yaglom все построения совершаются посредством всего двух действий:
- Задать цикл ≔ явно посредством его параметров;
- Создать цикл ⚙ посредством списка его отношений к уже существующим циклам.
1.2 Как это работает?
Оболочка Yaglom используется для построения геометрических фигур, которые является объединением взаимосвязанных
циклов. В наиболее знакомом случае (эллиптическая метрика) циклы—это собирательное название для точек, прямых и
окружностей. Циклы в параболической и гиперболической метриках будут обсуждаться позднее.
Построение фигуры проходит так:
- Несколько начальных циклов могут быть непосредственно определены пользователем. Точки добавляются щелчком левой кнопки мыши (ЛКМ) в желаемом месте чертёжа. Окружности, прямые и опять же точки могут быть явно заданы своими коэффициентами в уравнении цикла (5) с помощью кнопки Задать цикл ≔. Каждая фигура всегда содержит два изначальных цикла:
- Действительную ось
ℝ.
- Бесконечность ∞.
- Циклы без предков (то есть, непосредственно заданные, как описано выше) могут быть изменены в любое время несколькими способами. Для начала цикл необходимо выбрать, для этого на его графическое или текстовое представление надо навести указатель мыши. Выбранный цикл подсвечивается отдельным цветом после чего можно:
- Щелчком правой кнопки мыши (ПКМ) вызвать контекстное меню этого цикла и выбрать диалог Изменить параметры.
- Нажав и удерживая ЛКМ перетащить цикл в новое положение. Размер цикла при этом сохранится.
- Одновременно нажав и удерживая ЛКМ с кнопкой Ctrl клавиатуры изменить размер цикла с сохранением его центра. Новый цикл будет проходить через конечное положение в движении мыши при нажатых кнопках.
Кроме этого’:
- Щелчком ПКМ можно вызвать контекстное меню различных объектов, например построений.
- Одновременно нажав и удерживая ЛКМ с кнопкой Shift клавиатуры можно переместить картинку внутри окна просмотра.
- Вращая колёсико мыши можно приблизить или удалить картинку.
- Новый цикл может быть создан перечислением своих
отношений к уже существующим циклам или самому себе, см.
§ 2. Требуемые отношения могут быть выбраны из контекстного меню цикла вызываемого щелчком ПКМ либо по нарисованному на чертеже циклу, либо на его строке в описании фигуры в виде дерева. Что бы добавить отношения нового цикла к самому себе щёлкните по кнопке Новый цикл ↷. В этой же меню можно выбрать поколение для нового цикла:
- обычное, то есть следующее за самым молодым предком;
- крайнее существующее в данной фигуре (но при условии, что какой-либо родитель не находится уже в нём);
- новое последующее за крайним существующим поколением;
- с заданным номером (при условии все родители находятся в предыдущих).
Такая возможность позволит, например, разнести высоты и медианы треугольника в разные поколения, хотя они обладают тем же родительским набором сторон и вершин.Когда список отношений полностью составлен щелчок по Создать цикл ⚙ добавит новый цикл с требуемыми свойствами в фигуру. Её геометрическое место точек (если не пусто) будет прорисовано на чертеже. Несколько начальных примеров приведены в § 2.5.
Всплывающие подсказки и сообщения в нижней строке окна предоставляют дополнительную информацию об объектах.
Краткое видео поясняющее работу:
Yaglom позволяет использовать различные библиотеки построений. Создание и правка библиотек может быть так же осуществлена в оболочке. Построения в Yaglom похожи на макросы или процедуры в языках программирования. Пример их использования:
Мы обсудим работу с библиотеками построений в разделе 3.
Геометрический смысл и свойства различных отношений между циклами описаны в следующем разделе. Математическая сторона детально разбирается в работах [3, 4, 5]. Краткая справка по формализму приведена в разделе 6.
Мы здесь не описываем стандартные элементы программы вроде Запись или Изменить в надежде что пользователь с ними уже знаком по другим продуктам, а их поведение вполне ожидаемо или достаточно проясняется всплывающими подсказками. Действия в программе осуществляются или через основное меню (панель инструментов) и/или контекстные меню соответствующих элементов оболочки. Некоторые действия (как то изменение начертания или удаление) может одновременно применяться к произвольной группе выбранных циклов. Для этого используйте контекстное меню (щелчок ПКМ) либо
- какого-то поколения циклов (для действия на всех циклов в нём); либо
- на произвольной выборке циклов созданной с помощью клавиатурных комбинаций Shift/Ctrl и щелчков ЛКМ.