ИНФОРМАЦИОННЫЕ СИСТЕМЫ И ТЕХНОЛОГИИ
УДК 004.925.83:514.182.22 doi: 10.18101/2304-5728-2016-1-49-59
© И. И. Баглаев
Кинематический метод моделирования поверхностей в среде
FMSLogo
Новая область прикладной математики - компьютерная геометрия позволяет достаточно эффективно моделировать пространственные объекты и создавать их изображение непосредственно на экране монитора. В статье рассматривается способ математической визуализации поверхностей с использованием возможностей пространственного режима русской локализации среды программирования FMSLogo. Способ задания поверхностей перемещением кривых в пространстве называется кинематическим. Данный способ проиллюстрирован на примерах моделирования двух классов кинематических поверхностей: нелинейчатых и линейчатых. В работе приведены изображения каркасов таких поверхностей как поверхности вращения, каналовые поверхности, торсы, однополостные гиперболоиды, косые поверхности, геликоиды и некоторые другие, а также листинги программ их моделирования. Представленный в статье материал может быть полезен читателям, интересующимся компьютерной геометрией, и использован в освоении современных технологий трехмерного моделирования.
Ключевые слова: аналитический и кинематический способы задания поверхностей, нелинейчатые и линейчатые поверхности, поверхности вращения, каналовые поверхности, развертывающиеся и неразвертываю-щиеся поверхности, пространственный режим среды программирования FMSLogo, правый крен / левый крен, уклон вверх / уклон вниз, направо / налево, вперед / назад.
© 1.1. Baglaev
Kinematic method of surface modeling in FMSLogo programming
environment
Computer geometry as a new area of applied mathematics enables effective modeling of spatial objects and creating their images directly on the screen. The article deals with the method of surfaces mathematical visualization using the possibilities of Russian localization spatial mode in FMSLogo programming environment.
The way to define the surface by displacement of curves in space is called kinematic. This method is illustrated on the examples of two classes of kinematic modeling surfaces: nonruled and ruled. In the paper we have presented
the cases images of such surfaces as surfaces of revolution, canal surfaces, developable surfaces, hyperboloids of one sheet, oblique surfaces, helicoids and several others, as well as listings of programs for their modeling. The presented material may be useful for the readers who are of interest in computer geometry; also it may help in development of modern technologies of three-dimensional modeling.
Keywords: analytical and kinematic methods of defining surfaces, not ruled and ruled surfaces, surfaces of revolution, canal surface, developable and non-developable surface, space mode of FMSLogo programming environment, right bank / left bank, upgradient / downgradient, left / right, forward / back.
Введение
Известны 2 основных способа задания поверхностей:
1. Аналитический - при помощи уравнений;
2. Кинематический - перемещением кривых в пространстве.
Первый способ используется при изучении поверхностей в аналитической и дифференциальной геометрии, второй - в начертательной геометрии.
При аналитическом задании поверхностей удобно представлять их параметрическими уравнениями вида
x = x(u, v),
= y (u, v), (1)
z = x(u, v),
где u e (a,b), v e (c,d).
Семейства линий u = const, v = const образуют координатную сеть, так что через каждую точку поверхности проходит только одна линия семейства. Линии этих семейств называются координатными линиями, а множество всех координатных линий одного семейства создают каркас поверхности. При изображении поверхностей, заданных аналитически удобно строить изображения каркаса поверхности координатными линиями с некоторым шагом. На рис. 1 показано изображение каркаса поверхности, заданной уравнениями
x = k ■ u,
< y = 0.3 ■ b ■ (u ■ sin 2 ■ v + v ■ cos3 ■ u), (2)
z = k ■ v.
Рис. 1. Каркас поверхности, образованный координатными линиями
1. Задание кинематических поверхностей
Кинематический способ предполагает формирование поверхности в результате перемещения одной кривой и (образующей) по другой кривой V (направляющей) [3]. При классификации кинематических поверхностей мы придерживаемся подхода Пираловой О.Ф. [3].
Все поверхности, задаваемые кинематическим способом, можно разбить на 2 класса:
- нелинейчатые, образующие которых не являются прямыми;
-линейчатые, образующие которых являются прямыми.
1.1. Нелинейчатые поверхности
В статье будут рассматриваться нелинейчатые поверхности двух подклассов:
- поверхности вращения, образованные вращениями образующей;
- каналовые поверхности, образованные движением образующей замкнутой плоской линии вдоль некоторой криволинейной направляющей [4]:
a) параллельно какой-либо плоскости — каналовые поверхности с плоскостью параллелизма;
b) перпендикулярно к направляющей линии — прямые каналовые поверхности.
Если каркас формируется окружностями переменного радиуса, то поверхность - циклическая, а при постоянном радиусе окружности - трубчатая.
1.2. Линейчатые поверхности
Также будут рассмотрены линейчатые поверхности двух подклассов:
1) развертывающиеся линейчатые поверхности, которые путем изгибания могут быть совмещены с плоскостью;
2) неразвертывающиеся линейчатые поверхности или косые, которые путем изгибания не могут быть совмещены с плоскостью.
Семейство образующих прямых линейчатой поверхности представляет собой ее каркас.
Существует только три вида развертывающихся линейчатых поверхностей: торсы, конические и цилиндрические.
a. Торсом называют поверхность, описываемую движением прямой-образующей, касающейся некоторой пространственной кривой — направляющей.
b. Коническая поверхность образуется движением прямой-образующей, проходящей через некоторую фиксированную точку и через точки направляющей кривой.
c. Цилиндрическая поверхность образуется движением прямой-образующей, проходящей через точки направляющей кривой параллельно некоторой заданной прямой.
Неразвертывающиеся линейчатые поверхности в общем случае образуются движением прямолинейной образующей по трем направляющим линиям, которые однозначно задают закон ее перемещения . Направляющие линии могут быть кривыми и прямыми. Общий случай линейчатой поверхности - семейство образующих прямых, пересекающих три заданные пространственные кривые.
В статье будут рассмотрены некоторые из таких поверхностей .
1.Однополостный гиперболоид
Однополостным гиперболоидом называется поверхность, которая образуется при перемещении прямой линии, пересекающей одновременно три скрещивающиеся прямые линии (направляющие).
2. Прямой цилиндроид
Прямым цилиндроидом называется поверхность, образованная движением прямой линии, скользящей по двум криволинейным направляющим, не принадлежащим одной плоскости, и остающейся во всех своих положениях параллельной некоторой заданной плоскости. Эта плоскость называется плоскостью параллелизма. Одна из направляющих должна лежать в плоскости, перпендикулярной плоскости параллелизма.
3. Косая плоскость
Косой плоскостью называется поверхность, образованная движением прямой линии, скользящей по двум скрещивающимся прямым и остающейся во всех своих положениях параллельной некоторой плоскости параллелизма.
Косую плоскость называют также гиперболическим параболоидом.
4. Геликоид
Поверхность, образованная винтовым движением прямой линии, называется линейчатой винтовой поверхностью - геликоидом (винтовое движение характеризуется вращением вокруг некоторой оси l и поступательным перемещением, параллельным этой оси).
2. Моделирование кинематических поверхностей
Кинематический способ моделирования поверхностей в среде FMSLo-go опирается на пространственный режим, в котором графический исполнитель команд может выполнять перемещения, меняющие его углы Эйлера, двигаться вперед/назад. В статье автора [2] аналогичный подход применялся для моделирования плоских кривых. В локализованной версии FMSLogo [1] соответствующие базисные команды называются ПРАВЫЙКРЕН/ЛЕВЫЙКРЕН, УКЛОНВВЕРХ/УКЛОНВНИЗ,
НАПРАВО/НАЛЕВО, ВПЕРЕД/НАЗАД.
В данном пункте статьи для каждой рассматриваемой кинематической поверхности описываются ее образующие, направляющие и закон перемещения. Показано изображение каркаса поверхности данного вида и приведен листинг программы на Logo, рисующей этот каркас.
2.1. Моделирование поверхностей вращения
Поверхность вращения образуется произвольной кривой (плоской или пространственной) при ее вращении вокруг неподвижной оси. Каждая точка образующей при вращении вокруг оси описывает окружность с центром на оси вращения. Эти окружности называют параллелями. Плоскости, проходящие через ось поверхности вращения, называют меридиональными, а линии, по которым они пересекают поверхность, — меридианами. На рис. 2 показан каркас поверхности вращения, образованной вращением астроиды вокруг оси симметрии. Выделенные на каркасе линии: нулевая параллель - экватор, часть одного из меридианов.
Это астр :а
для ^ 0 2*пи 0.0174][вперед
(произведение 1.5 :а radsin 2*:0
1 направо 1]
йк лв 2 нов xyz 0 0 0
Конец
Это п вращ :а
Пусть "rad 180/пи
повтори 20 [астр :а пра-
т выйкрен 9]
Рис. 2. Поверхность вращения пп вп 2*:rad вверх 90 по
окружность 2*:rad
Конец
2.2. Моделирование каналовых поверхностей
Каналовая поверхность образуется каркасом замкнутых плоских сечений, определенным образом ориентированных в пространстве. Площади этих сечений могут оставаться постоянными или монотонно изменяться в процессе перехода от одного сечения к другому. Ранее указывалось существует 2 типа каналовых поверхностей: с плоскостью параллелизма и прямые.
а) Каналовые поверхности с плоскостью параллелизма На рис. 3 показан каркас поверхности с плоскостью параллелизма, образованной перемещением кардиоиды-образующей переменного радиуса вдоль полукубической параболы-направляющей параллельно фиксированной направляющей плоскости.
это кард :а
для ^ 0 3*пи
0.0174][вперед частное (про-
изведение 4 :а radcos -Л/3 ) 3
лв 1 ]
конец
это канал1
по
для ^ 0.1 0.4 0.01][ пусть "а tg arcsin ехр лв :а пусть "ог ориентация пп вперед 10 по новориент [90 90 0] кард 1*radsin ^*пи новориент :ог ]
пп домой по
для ^ 0.1 0.4 0.01][ пусть "а tg arcsin ехр пр :а пусть "ог ориентация пп вперед 10 по новориент [90 90 0] кард 1*radsin ^*пи новориент :ог ] конец
Ь) Прямые каналовые поверхности
На рис. 4 показан каркас прямой каналовой поверхности, образованной перемещением окружности-образующей переменного радиуса вдоль дуги кардиоиды-направляющей, так чтобы плоскость окружности и направляющая были перпендикулярны. Так как образующая окружность, то данный пример является одновременно примером циклической поверхности.
Это канал2 :а
для ^ 0 пи 3*0.0174][пп вперед 6*частное (произведение 4 :а radcos -А/3) 3 лв 1 по окружность 10 + 30*radsin -Л]
Рис. 4. Прямая каналовая Конец
поверхность
с) Трубчатая поверхность
Трубчатая поверхность получается при движении окружности постоянного радиуса по криволинейной направляющей; плоскость окружности все время остается перпендикулярной к направляющей. На рис. 5 показан каркас трубчатой поверхности, образованной перемещением окружности-образующей постоянного радиуса вдоль дуги винтовой-направляющей.
это трубч :а :Ь :1 :г
для ^ 0 :11][пр :а правыйк-
рен :Ь вп 3 окружность :г]
конец
Рис. 5. Трубчатая поверхность
На рис. 6 показана поверхность Эшера, полученная перемещением окружности вдоль трилистника.
Рис. 6. Поверхность Эшера 2.3. Моделирование развертывающихся поверхностей
а) Торсы
Торс является линейчатой поверхностью с одной криволинейной направляющей называемой ребром возврата. Поверхность торса образуется движением по ребру возврата касательной к ней. На рис. 7 показан каркас винтового торса образованного касательными к винтовой линии.
ёЫЬ' это торс :а :Ь :1
' ж вверх 90
для ^ 0 :11][пр :а правыйк-
рен :Ь вп 100 нд 97]
конец
Рис. 7. Винтовой торс
Ь) Коническая поверхность
Все прямолинейные образующие конической поверхности пересекаются в собственной точке, вершине 8. Ребро возврата, вырождается в собственную точку 8. Коническая поверхность однозначно определяется прямолинейной образующей, кривой направляющей и точкой 8. На рис. 8 показан каркас круговой конической поверхности.
к?
Ж V-/г/1!1 1 М \iffifllH % это конус пр 180 для [п 0 72 1][пр 30 вп 200 нд 200 лв 30 правыйкрен 5] пр 30 вп 200 лв 30 вверх 90 повтори 360 [вп 1.75 лв 1] конец
Рис. 8. Коническая поверхность
Ь) Цилиндрическая поверхность
Отличие цилиндрической поверхности от конической поверхности состоит лишь в том, что образующие цилиндрической поверхности параллельны (пересекаются в несобственной точке). На рис. 9 показан каркас круговой цилиндрической поверхности.
Это цилиндр
для [п 0 120 1][вп 200 нд 200 вниз 90 вп 3 пр 3 вверх 90]
вп 200 вниз 90 для [п 0 120 1][вп 3 пр 3] Конец
2.4. Моделирование однополостного гиперболоида
а) Однополостный гиперболоид общего вида
Поверхность однополостного гиперболоида общего вида может быть получена при движении прямолинейной образующей по трем скрещивающимся прямым, не параллельным одной плоскости. На рис. 10 показан каркас однополостного гиперболоида заданного направляющими а,
b,c._
это гиперболоид пр 90 вп 100 домой вверх 90 пусть "v2 [] пп вп 100 вниз 90 по вп 100 новориент внаправ_xyz [0 0
0]
пусть "dl расстояние_xyz [0 0 0] нд :d1
пусть "Mместо_xyz вп 2*:d1 новориент [0 0 90]вп 100 новориент внаправ_xyz [0 0 100] пусть "d2расстояние_xyz [0 0 100] вп 2*:d2
новориент внаправ_xyz :M пусть "d3 расстояние_xyz :M для [j 1 :d3 1][вп 1 пусть "o остаток :j 10 если :o=0 [пусть "v2 пвконец место_xyz :v2]] пп домой пр 90 для [i 22 1 -1][вп 100/22 но-
вориент внаправ xyz элемент :1
^2 пусть "d4расстояние xyz
элемент :1 ^2
по вп ^4 Нд ^4 новориент
[0 0 90] жди 10]
Конец
Ь) Однополостный гиперболоид вращения
Однополостный гиперболоид вращения можно получить перемещением прямой, образующей некоторый угол ф с направляющей плоскостью Е, по точкам окружности, лежащей в этой плоскости. На рис. изображен каркас гиперболоида вращения, представляющих собой семейство прямых проходящих через точки горловой окружности и наклоненных к плоскости окружности под одним и тем же углом.
это гип вр пп домой
пр 90 повтори 36[по повтори 10[вп 1 вверх 1] лв 70 пп вп 150 по нд 300 пп вп 150 пр 70] конец
Рис. 11. Однополостный гиперболоид вращения
2.5. Моделирование прямого цилиндроида
На рис. 12 показан каркас прямого цилиндроида, образованного прямолинейными образующими, проходящими через точки полуокружностей лежащих в плоскостях Еь Е2, параллельно плоскости параллелизма Е3.
это цилиндроид пусть V [] пусть "v2 [] пусть "rad 180/пи по повтори 4[повтори 4[вп 3*:rad пр 90]вп 3*:rad вниз 90]
вниз 90 повтори 36[пусть "V1 пвконец место_xyz -.V1 повтори 5[вп 1.5 пр 1] ]
пп пр 180 вп 3*:rad вверх 90 вп 3*:rad лв 90 вп 3*:rad пр 90 вверх 90 по
повтори 36[пусть "v2 пвконец ме-сто_xyz ^2 повтори 5[вп 1.5 пр 1] ]
для [11 36 1] [пп новместо_xyz элемент :1 ^1 новориент вна-прав_xyz элемент :1 ^2 пусть "dрас-
стояние xyz элемент :г ^2 по вп ^
нд
конец
2.6. Моделирование косой поверхности
На рис.13 показана косая плоскость (гиперболический параболоид) получен при скольжении прямой по двум скрещивающимся прямолинейным направляющим (на чертеже выделены), при этом образующая все время остается параллельной плоскости параллелизма Е.
Это косая
пусть V [] пусть "v2 [] вверх 90 пп вп 150 вниз 135 по
Для ^ 0 210 1][вперед 1 пусть "о остаток 'Л 10 если :о=0 [пусть '^1 пвконец место_xyz -.V1]]
пп домой пр 90 вп 150 вверх 90 вп 150 лв 90 вп 150 лв 135 по
Для ^ 0 210 1][вперед 1 пусть "о остаток 10 если :о=0 [пусть "v2 пвконец место_xyz ^2]]
для [г 1 22 1][ пп новместо_xyz элемент :г ^1 новориент внаправ_xyz элемент :г ^2
по вп расстояние_xyz элемент :г
■V2_]
Конец
2.7. Моделирование прямого геликоида.
Прямой геликоид — поверхность, образованная движением прямой, вращающейся вокруг оси и перпендикулярной к ней и одновременно поступательно движущейся в направлении этой оси, причем скорости этих движений пропорциональны. Направляющими служат винтовая линия и прямая. На рис. 14 показан каркас прямого геликоида.
это геликоид
новыйразмерпера 2 новыйцветпера 4 вп 150 нд 150
повтори 60 [по вверх 90 новыйраз-мерпера 1 новыйцветпера 0 вп 100
нд 100 вниз 90 повтори 12[вверх 90 пп вп 100 новыйразмерпера 1
новыйцветпера 1 по окружность 2 пп нд 100 вниз 90 вп 0.208 правыйкрен 1]] по вверх 90 новыйразмерпера 1 новыйцветпера 0 вп 100 нд 100 вниз 90 конец
Заключение
Рассматриваемый в статье метод кинематического моделирования поверхностей в среде FMSLogo является вполне оригинальным и представляет практический интерес. В дальнейшем планируется расширить перечень моделируемых поверхностей.
Литература
1. Баглаев И. И. Русская локализация среды программирования FMSLogo // Материалы Байкальской региональной научно-практической конференции с международным участием «Инфокоммуникационные образовательные технологии: модели, методы, средства, ресурсы». 1-5 июля 2009 г. - Улан-Удэ: Изд-во Бурятского госуниверситета, 2009. — С. 227232.
2. Баглаев И.И. Моделирование плоских кривых в среде FMSLogo // Вестник Бурятского госуниверситета.— Вып. 9. — С. 252-257.
3. Пиралова О.Ф.Инженерная графика: краткий курс: [учебник для вузов]. — Москва: Акад. Естествознания, 2009. — 159 с.
4. Митюшов Е. А., Беляева З. В. Кинематический метод построения каналовых поверхностей [Электронный ресурс]// Прикладная геометрия.-2010.— Вып. 12.— № 25.— с. 1-10.— URL: http://www.apg.mai.ru/Volume12/Number25/vol1225 1.pdf
References
1. Baglaev I. I. Russkaya lokalizatsiya sredy programmirovaniya FMSLogo [Russian Localization of FMSLogo Programming Environment]. Infokommu-nikatsionnye obrazovatel'nye tekhnologii: modeli, metody, sredstva, resursy -Info-Communication Educational Technologies: Models, Methods, Tools, Resources. Proc. Baikal regional sci.-pract. conf. with int. participation (July 1-5, 2009). Ulan-Ude: Buryat State University Publ., 2009. Pp. 227-232.
2. Baglaev I. I. Modelirovanie ploskikh krivykh v srede FMSLogo [Modeling of Plane Curves in FMSLogo Environment]. Vestnik Buryatskogo gosuni-versiteta - Bulletin of Buryat State University. 2010. V. 9. Pp. 252-257.
3. Piralova O. F. Inzhenernaya grafika: kratkii kurs [Engineering Graphics: a Short Course]. Moscow: Academy of Natural Sciences Publ., 2009. 159 p.
4. Mityushov E. A., Belyaeva Z. V. Kinematicheskii metod postroeniya ka-nalovykh poverkhnostei [Kinematic Method of Constructing Canal Surfaces]. Prikladnaya geometriya - Applied Geometry. 2010. V. 12. No. 25. Pp. 1-10. Available at:
http://www.apg.mai.ru/Volume12/Number25/vol1225_1.pdf
Баглаев Игорь Ильич, кандидат физико-математических наук, доцент кафедры геометрии и методики преподавания математики Бурятского государственного университета, e-mail: [email protected]
Igor I. Baglaev, PhD, A/Professor, Department of Geometry and Methods of Teaching Mathematics, Buryat State University.