УДК 37.015.3
Использование локализованной среды программирования FMSLogo для решения задач компьютерной дифференциальной геометрии
© Баглаев Игорь Ильич
кандидат физико-математических наук, доцент кафедры геометрии и Бурятского государственного университета
Россия, 670000, г. Улан-Удэ, ул. Ранжурова, 5
E-mail: [email protected]
В статье рассматривается локализация среды программирования FMSLogo. В качестве преимуществ языка указаны доступность, наглядность, направленность на компьютерное моделирование и исследование, свободная распространяемость данного программного обеспечения. Также дается понятие и содержание курса «Компьютерная дифференциальная геометрия», который включает в себя решение задач дискретной дифференциальной геометрии на языке программирования, а именно в среде FMSLogo. Перечислены основные темы, входящие в классический курс «Дифференциальная геометрия». Рассмотрены примеры решения задач компьютерной геометрии с использованием среды FMSLogo: вычисление длины дуги плоской кривой и построение касательной и нормали к цепной линии. Изучение дифференциально-геометрических объектов средствами FMSLogo позволяет студентам глубже понимать суть данных объектов, способствует развитию пространственного воображения и геометрической интуиции.
Ключевые слова: среда программирования FMSLogo, локализация, компьютерная дифференциальная геометрия, длина дуги, касательная, нормаль, дифференциально-геометрические объекты.
Using localized programming environment FMSLogo in solving exercises of computer differential geometry
Igor I. Baglaev
PhD in Physics and Mathematics, A/Professor, Department of Geometry, Buryat State University
5 Ranzhurova St., Ulan-Ude, 670000 Russia
In the article localization of the environment of programming of FMSLogo is considered. As advantages of the language availability, illustrative, focusing at computer modeling and research, free distribution of this software are specified. Also the concept and the content of the course "Computer Differential Geometry" which includes the solution of problems of discrete differential geometry in a programming language, namely in the environment of FMSLogo is given. The main subjects entering the classical course "Differential Geometry" are listed. Examples of the solution of problems of computer geometry with the use of the FMSLogo environment are reviewed: calculation of length of an arch of a flat curve and creation of a tangent and normal on the chain line. Studying differential and geometrical objects by means of FMSLogo allows students to understand more deeply an essence of these objects, develops spatial imagination and geometrical intuition.
Keywords: programming environment FMSLogo, localization, Computer Differential Geometry, the length of a curve, tangent, normal, geometric objects.
Язык программирования Лого был разработан Сеймуром Пейпертом [5], известным математиком и специалистом в области искусственного интеллекта, специально для обучения школьников основам программирования. Брайан Харви, разработчик одного из диалектов Лого — UCBLogo и автор трехтомного труда «Computer Science Logo Style» [6], писал: «Язык Лого стал жертвой собственной популярности в общеобразовательной школе. Он приобрел репутацию примитивного языка для детей. По этой причине он был проигнорирован как базовый в традиционных университетских курсах вычислительной геометрии и компьютерной графики», в то время как Лого может служить в качестве компьютерной поддержки не только этих, но и многих других дисциплин.
Среда программирования FMSLogo, современная и постоянно обновляющаяся версия Лого, функционирует под управлением ОС Windows.
FMSLogo [2] имеет ряд преимуществ.
Первое — доступность языка, позволяющая начать изучение языка учащимися начальных классов, в то же время им могут пользоваться профессиональные программисты. Лого является интерпретатором, обеспечивающим диалоговый характер общения с пользователем и характеризуется структурным построением программ. Мощный аппарат обработки объектов языка Лого аналогичен языку искусственного интеллекта ЛИСП.
Второе — наглядность. В ней есть исполнитель команд — черепаха, по-английски — turtle, поэто-
му в дальнейшем будем называть черепаху Тортиллой (по имени известного персонажа сказки А. Толстого «Золотой ключик, или Приключения Буратино») и пользоваться преимущественно этим именем [1]. Тортилла в точности выполняет все команды учащегося. Наблюдая за ее поведением по командам Лого, легко понять и усвоить средства языка программирования.
Третье — направленность на компьютерное моделирование и исследование, возможность построения своей учебной среды — микромира.
Указанные достоинства, в частности — доступность, для решения прикладных задач при обучении математике школьников и студентов во многом теряется из-за языкового барьера, т. к. графический интерфейс среды, система базовых команд, файлы «помощи» англоязычны. Наш опыт преподавания «Компьютерной геометрии» с использованием среды FMSLogo, показал, что если использовать локализованную версию указанной среды, то эффективность изучения дисциплины значительно возрастает за счет более быстрого освоения основ языка. Ниже дадим краткую характеристику понятия локализации информационных систем и опишем опыт автора локализации на русский язык среды программирования FMSLogo. Последний релиз FMSLogo 6.34.0 имеет русскую локализацию. Его можно загрузить с проектного портала SourceForge.
щ
FMSLogo Версия 6.34,0 - wxWidgets http://sourceforge.net/projects/fnnslogo
ГИП Джорджа Миллза Softronics, Inc. http://www.soFtronix.conn/
Ядро Брайена Харви Калифорнийский университет Беркли
Инсталляция базируется на Nullsoft Scriptable Install http://nsis.sourceforge.net/
The Great Logo Adventure (ISBN 0-9651934-6-2) написанная и переданная Джимом Мюллером доступна на http://www.softronix.corm/
Благодарим Йегуду Катца и Эриха Нейвиртза
FMSLogo распространяется свободно См. лицензию ГНУ
Группа новостей в Интернете: comp,lang.logo посетите форум на http://groups. yahoo, com/group/LogoForurm/
Для Изучение внутренних свойств компьютера; используйте MultiMedia Logic от Softronics, Inc. Адаптация и локализация на русский язык Баглаева Игоря бурятский государственный университет, Улан-Удэ, [email protected]
( OK ]
Рис. 1
На рис. 1 приведен скриншот окна среды FMSLogo с информацией о локализованной версии среды, в которой указан автор локализации.
Локализация (от англ. localization) — перевод и адаптация элементов интерфейса (совокупность средств и методов взаимодействия между элементами системы), системы базовых команд, вспомогательных файлов и документации.
Выбор для локализации среды программирования FMSLogo обусловлен тем, что исходный код среды программирования является свободно-распространяемым и активно развивается международной группой программистов под руководством Д. Костанцо.
Локализация FMSLogo — в основном вопрос перевода большого количества текста в нескольких файлах (табл. 1) и затем тестирование корректности перевода.
Таблица 1
Пакет Локализации
Имя файла Описание
fmslogo-6.34.0.exe Многоязычный инсталлятор FMSLOGO
fmslogo.nsi Исходный текст для инсталлятора
localizedstrings-ru.h Заголовочный файл С++, который содержит строки, используемые для интерфейса пользователя. Он также содержит стандартные переводы для всех базисных команд и функций.
startup-1049.logoscript Файл Лого, который начинает работать, когда Лого запускается. Он также содержит дополнительные переводы для базисных команд и функций (если они имеются), так же как переводы для всех библиотечных процедур.
logohelp.chm Руководство пользователя FMSLogo
ББМО Демонстрационная программа
Теперь кратко о предмете курса «Компьютерная дифференциальная геометрия». Математику как науку можно разделить на дискретную и непрерывную. В непрерывной математике явно или неявно содержится идея теории пределов и непрерывности, которая самым активным образом присутствует, например, в классической дифференциальной геометрии. В ней все используемые функции, по умолчанию, предполагаются непрерывными и дифференцируемыми до нужного порядка. В XX в. стала активно развиваться дискретная математика в связи тем, что она является теоретической основой компьютерной математики, а также средством и языком для построения и анализа моделей в различных науках, в том числе геометрии.
Компьютерная дифференциальная геометрия — компьютерно-ориентированное изучение дифференциальной геометрии, а его содержанием является решение задач дискретной дифференциальной геометрии на одном из языков программирования. В основу философии данного курса заложена китайская пословица: «Я слышу и забываю, я вижу и запоминаю, я делаю и постигаю». Дискретная дифференциальная геометрия возникла и развивается на стыке дифференциальной и дискретной геометрий [4]. Ее целью является разработка дискретных аналогов понятий и методов классической дифференциальной геометрии. Имеется два основных принципа дискретизации: принцип группы преобразований (гладкие геометрические объекты и их дискретные эквиваленты должны быть инвариантны относительно одной и той же группы преобразований) и принцип многомерной совместности (дискретизации гладких геометрических объектов должны быть расширяемы до многомерных совместных сетей). Интерес к дискретной дифференциальной геометрии обусловлен не только ее важностью для чистой математики, но также и ее актуальностью для приложений в компьютерной графике, географических информационных системах, робототехнике и т. д.
В курс «Компьютерная дифференциальная геометрия» входят вопросы, которые отражены в содержании классического курса «Дифференциальная геометрия», такие как:
- способы задания плоских кривых. Касательная и нормаль плоской кривой. Длина дуги. Соприкасающаяся окружность и кривизна плоской кривой. Кинематические методы моделирования плоских кривых.
- способы задания пространственных кривых. Сопровождающий трехгранник пространственной кривой. Длина дуги пространственной кривой. Формулы Френе. Кривизна и кручение пространственной кривой. Кинематический метод моделирования пространственных кривых.
- способы задания поверхностей. Координатная сеть. Кинематический метод моделирования поверхностей. Первая квадратичная форма поверхности. Площадь поверхности.
В заключение рассмотрим несколько примеров использования среды FMSLogo для решения задач компьютерной геометрии
Задача 1. Вычисление длины дуги плоской кривой
Как известно, длина дуги кривой вычисляется с помощью определенного интеграла, нахождение которого в общем случае является непростой задачей. При нашем же подходе, на основе определения длины кривой, сводим нахождение длины дуги кривой к достаточно простой задаче нахождения периметра ломаной.
Пусть дана кривая у, аппроксимируем ее вписанной ломаной Ь, где Ь — конечная последовательность вершин У1, У2,...У„, отсортированных по обходу кривой, и отрезков, соединяющих соседние вершины (рис. 2).
Длина p вписанной ломаной L вычисляется по формуле:
p( L) = g d (Vi ,V+i)
i=0
?
где d — расстояние между двумя точками.
5 = sup p(L)
Длина s дуги кривой у: .
Предположим, что у является гладкой простой кривой, заданной уравнением y = f(x). Гладкость подразумевает, что для каждой точки на кривой имеется уникальная вполне определенная касательная. Тогда можно показать, что последовательностьp¡, р2, р3... стремится к s, при A(L), стремящемся к
max d(V ,V+i)
v._ _J
нулю, где A(L)= 0<i<n— . Если предел периметров этих ломаных существует, то длина дуги
b
s = I V1 + /2(x)dx
кривой равна a .
Пусть V0 — начальная точка кривой у и ей соответствует значение x = x0 = a, Vn — конечная точка кривой со значением x = xn = b. Определим приращение аргумента Ax по формуле Ax = (xn — x0)/n. Зададим переменную xi = x0 + i Ax (i = 0, 1,...,n). Точки V¡(x¡, f(x^) (I = 0, 1,...n) будут вершинами ломаной L, вписанной в у. При достаточно большом n или достаточно малом Ax периметр p ломаной L дает хорошую аппроксимацию длины s дуги кривой.
В среде FMSLogo, для нахождения периметра p ломаной L необходимо:
• составить список pol из координат вершин Vi (i = 0, 1,.. ,,n) ломаной L в виде очереди;
• присвоить переменной p значение, равное 0;
• начиная с начальной вершины V0, находить длины d(Vi, Vi+i) звеньев ломаной и суммировать к предыдущему значению p.
Для конкретной функции y = f(x) и заданного числа n звеньев ломаной L программа вычисления периметра p состоит из функций:
• f, возвращающей значение f для аргумента x;
• таб, возвращающей список pol из координат вершин ломаной;
• периметр, возвращающей периметр ломаной.
Ниже приведен листинг программы приближенного нахождения длины дуги синусоиды указанным способом. Это f :x
вд произведение 100 sin :x конец
это периметр :n
пп нм элемент 1 таб :n по пусть «p 0 повтори :n [нм элемент счетчик таб :n пусть «d расстояние элемент сумма счетчик 1 таб :n пусть «p сумма :p :d] вд :p конец
это таб :n
пусть «pol []
для [x 0 :n 1][в очередь «pol список :x f :x] вд :pol конец
В приведенной выше программе f(x) = 100 sin x. Инструкция пш периметр 360 выводит на консоль приближенное значение p = 557.467549890523, которое отличается от значения s длины дуги синусоиды, вычисленного в Маткаде на 0,0007 %.
Задача 2. Построение касательной и нормали плоской кривой
Если кривая задана явным уравнением y = f(x), то угловой коэффициент tg а касательной в точке (x0, y0) выражается формулой tg а = y'(x0).
Рассмотрим построение касательной и нормали к цепной линии.
Уравнение цепной линии y = ach (x/a).
Рис. 3
Если ^MTP есть угол а наклона касательной, то tg а = у' = sh(x/a). Отсюда а = аг^ sh (х/а), азимут касательной h = 90°- а.
Процедуры построения касательной и нормали к цепной линии (рис. 3) с использованием угла а записываются в виде : Это sh :х
вд частное разность exp :х exp -:х 2 Конец
Это кас. норм. цеп :а :х° цеп :а
пп нов_ху :х° :а* ch :х°/:а по новый курс 90 — аг^ sh :х°/:а
вп 100 нд 100 лв 90 вп 100
Конец
Другой пример: геометрический смысл кривизны кривой в точке заключается в величине предела отношения угла поворота касательной на дуге при стремлении длины дуги к нулю. Аппроксимировать кривизну можно как отношение угла поворота касательной на дуге, определяемой двумя близкими точками кривой, к длине этой дуги.
Нами проведена дискретизация основных плоских и пространственных фигур и связанных с ними дифференциально-геометрических объектов и на их основе разработаны способы моделирования этих фигур и объектов в среде FMSLogo.
Такой подход к изучению дифференциально-геометрических объектов приводит к более глубокому пониманию студентами сути этих объектов, развитию наглядных представлений, пространственного воображения, геометрической интуиции.
Литература
1. Баглаев И. И. О переводе и адаптации среды программирования FMSLogo на русский язык [Электронный ресурс] // XIX Ежегодная конференция-выставка («ИТО-2009»): тез. докл. (5-7 ноября 2009 г., г. Москва). URL: ito.su/main.php?pid=26&fid=815 9
2. Баглаев И. И., Очирова Н. В. Лого-программирование: учеб.-метод. пособие. — Улан-Удэ: Изд-во Бурят. гос. ун-та, 2007. — 130 с.
3. Баглаев И. И. О курсе «Компьютерная дифференциальная геометрия» // Вестник Бурятского государственного университета. — 2012. — Вып. 15. — С. 10-13.
4. Бобенко А., Сурис Ю. Дискретная дифференциальная геометрия. Интегрируемая структура. — М.: Изд-во Ин-та компьютерных исследований, 2010. — 488 с.
5. Пейперт С. Переворот в сознании: дети, компьютеры и плодотворные идеи. — М.: Педагогика, 1989. — 234 с.
6. Harvey B. Computer Science Logo Style. — Cambridge, MA: MIT Press, 1997. — 2 ed. — Vol. 1-3.
References
1. Baglaev I. I. O perevode i adaptatsii sredy programmirovaniya FMSLog na russkiiyazyk [On Translation and Adaptation of FMSLogo Programming Environment into the Russian Language]. 19th Ann. Conference and Exhibition "IT0-2009" (November 57, 2009, Moscow). Available at: ito.su/main.php?pid=26&fid=8159
2. Baglaev I. I., Ochirova N.V. Logo-programmirovanie [Logo Programming]. Ulan-Ude: Buryat State University Publ., 2007. 130 p.
3. Baglaev I. I. O kurse komp'yuternaya differentsial'naya geometriya [On the Course of Computer Differential Geometry]. Vestnik Buryatskogo gosudarstvennogo universiteta. Matematika i informatika - Bulletin of Buryat State University. Mathematics and Computer Science. Ulan-Ude, 2012. V. 15. Pp. 10-13.
4. Bobenko A., Suris Yu. Diskretnaya differentsial'naya geometriya. Integriruemaya struktura [Discrete Differential Geometry. An Integrable Structure]. Moscow: Institute of Computer Science, 2010. 488 p.
5. Papert S. Mindstorms. Children, Computers and Powerful Ideas. New York: Basic Books Inc., 1980.
6. Harvey B. Computer Science Logo Style. 2nd ed. Cambridge, MA: MIT Press, 1997. V. 1-3.