Научно-методический раздел
УДК 681.327.11
Зй-МОДЕЛИ ЛИНЕЙЧАТЫХ ПОВЕРХНОСТЕЙ С ТРЕМЯ ПРЯМОЛИНЕЙНЫМИ НАПРАВЛЯЮЩИМИ
А.Л. Хейфец, А.Н. Логиновский
3D-MODELS OF RULED SURFACES WITH THREE RECTILINEAR GUIDES
A.L. Kheyfets, A.N. Loginovsky
Приведены алгоритмы построения ЗБ-моделей эллиптического гиперболоида и гиперболического параболоида в среде пакета AutoCAD. Рассмотрено решение ряда задач на частные случаи пересечения.
Ключевые слова: компьютерное моделирование, геометрическое моделирование, ЗВ-технологии, линейчатые поверхности, AutoCAD.
Algorithms of 3D-modeling of elliptical hyperboloid and hyperboloid paraboloid in AutoCAD application are given. Solution of problems on special cases of intersection is considered.
Keywords: computer simulation, geometric simulation, 3D-technologies, ruled surfaces, AutoCAD.
Эллиптический (однополостный) гиперболоид и гиперболический параболоид (косая плоскость) приводятся в аналитической и начертательной геометрии в качестве канонических примеров моделирования. Особый интерес вызывает моделирование кинематического представления этих поверхностей как результата движения образующей прямой линии по трем прямолинейным направляющим.
Цель работы - на примере построения ЗБ-моделей названных поверхностей показать новые возможности компьютерного геометрического моделирования в пакете АиЮСАБ, как наиболее адаптированном для теоретического анализа [1,2].
Универсальный алгоритм вращающейся плоскости. В работе [2] показано построение моделей рассматриваемых поверхностей на основе алгоритма, который является реализацией известной задачи о нахождении прямой /, пересекающей скрещивающиеся прямые а, Ь и проходящей через точку Р (рис. 1). Нужно задать вспомогательную плоскость а, проходящую через прямую а и точку Р, найти точку 1 = а ПЬ. Точки Р и 1 определяют искомую прямую / которая в точке 2 пересекает прямую а.
При перемещении точки Р вдоль прямой с, либо при вращении плоскости а вокруг а будет получено все множество прямых / пересекающих три заданные прямые а, Ь, с, то есть каркас поверхности. Если прямые а, Ъ, с принадлежат семей-
ству направляющих, рассмотренная задача позволяет найти образующие линии каркаса, и наоборот.
Наглядность построения обеспечивается введением ограничивающих плоскостей или поверхностей. На рис. 1 показан отрезок 3-4 прямой /, отсеченный плоскостями р и у.
Рис. 1. Построение прямой, пересекающей три скрещивающиеся прямые
Однако построение модели на основе алгоритма вращающейся плоскости приводит к существенной неравномерности каркаса [2], снижающей точность получаемых поверхностей. Возникают сложности, связанные с появлением удаленных точек, когда плоскость а приближается к положению плоскостей параллелизма прямых.
Эллиптический гиперболоид. Рассмотрим алгоритм, лишенный указанных недостатков и учитывающий особенности формы эллиптическо-
го гиперболоида. В качестве примера построим гиперболоид, задаваемый тремя отрезками прямых (команда line) — это направляющие dl...d3 с координатами конечных точек: dl: (58, 32, 28), (122, 44, 95); d2: (112, 28, 0), (56, 66, 95); d3: (87, 67, 0), (45, 37, 73).
Алгоритм реализуется в следующей последовательности.
Находится центр симметрии гиперболоида. Определяется плоскость, гарантирующая рассечение гиперболоида по эллипсу. Плоскость параллельно смещается от центра на половину высоты гиперболоида и принимается за плоскость опорного эллипса. Строится «опорный» эллипс. Из условий подобия строятся еще 5... 10 сечений гиперболоида, параллельных «опорному». Найденные эллипсы образуют каркас поверхности, по которому создается сеть и solid-объект.
Центр симметрии гиперболоида находим, исходя из того, что у любой линии семейства направляющих имеется параллельная ей линия из семейства образующих, расположенная симметрично относительно искомого центра [5]. Найдем образующую f параллельную направляющей d2 (рис. 2) и пересекающую две другие направляющее dl, d3. Для этого нужно установить систему координат (ПСК), направив ось Z вдоль направляющей d2 (ucs/za). Построим проекции двух других направляющих на плоскость XY ПСК прямые dl', d3'. Копируем d2, совмещая ее конечную точку 0 с точкой A=dl'rd3' - получаем образующую f В точках 1, 2 прямая / пересечет направляющие dl, d3. Находим «срединную прямую» т. Для этого нужно опустить перепендику-ляр р из произвольной точки образующей / на направляющей d2 и скопировать /в среднюю точку 3 перпендикуляра р.
Подобным образом находится образующая, параллельная dl и пересекающая направляющие d2, d3, и вторая срединная прямая т'. На пересечении срединных прямых т и т' поставьте маркер точки - это центр симметрии гиперболоида, точка С, которая в нашем примере имеет координаты (71.6,42.7,48.1).
Для задания плоскости, гарантирующей сечение гиперболоида по эллипсу, из центра С опустим перпендикуляры на направляющие dl, d2. Зададим плоскость (tics / 3) по точке центра и основаниям перпендикуляров. Эта плоскость находится в области горловины гиперболоида. Поэтому, измерив (list) длину одного из перпендикуляров, примем ее за характерный размер г горловины гиперболоида. Зададим высоту гиперболоида как Я=(4...6)г.
Плоскость параллельно сместим (ucs/o) от центра С на 0.5Н и примем за плоскость «опорного» эллипса - плоскость у (рис 3, а).
Опорный эллипс строится по трем точкам и двум касательным «с выходом в пространство» [6]. Точки 1...3 (рис. 3, а) эллипса найдем как точки пересечения плоскости у с направляющими dl ...d3. В точках 1, 3 находим образующие //, f3. Плоскости dl Cfl и d3 Cf3 являются касательными плоскостями к поверхности гиперболоида. Находим отрезок 4-5 взаимного пересечения касательных плоскостей и точку S=(4-5) Пу из которой строим касательные S-1 и S-3 к искомому эллипсу.
В плоскости у строим окружность с произвольного радиуса с центром в точке S. Находим отрезок 6-7 и его среднюю точку 8. Вращением (revolve) треугольника S-7—8 создаем solid-конус. В точке 2 (рис. 3, б) восстанавливаем перпендику-
Рис. 3. Построение эллипса по трем точкам и двум касательным
ляр к плоскости у (S-7-8), и на его пересечении с поверхностью конуса находим точку 2'. Строим сечение (section) конуса плоскостью, проходящей через точки 1, 2' 3 и получаем эллипс el. Выдавливаем (extrude /path) эллипс el по направлению 2-2'- получаем эллиптический цилиндр. Искомый эллипс е получим как сечение цилиндра (section) плоскостью у {рис. 3, в).
Соединив (рис. 4, а) отрезком прямой (line) центр опорного эллипса е (точка 9, объектная привязка Center) с центром гиперболоида, точкой С, получим отрезок (9-С) как геометрическое место центральных точек эллипсов сечений, параллельных опорному. Равномерным делением отрезка (9-С) задаем на нем ряд точек, в каждой из которых строим эллипс сечения. Например, для построения эллипса е2, копируем эллипс е, переместив его центр в точку 10- получаем эллипс е'. Находим точку 11 пересечения одной из направляющих, например dl, с плоскостью эллипса е'. Построив (line) отрезок (10-11), удлиняем его (extend) до пересечения се'- получаем точку 12. Масштабируем (scale / reference) эллипс е’ так, чтобы точка 12 «перешла» в точку 11 - получим эллипс е2.
Построив 3...5 эллипсов сечений по одну сторону от центра гиперболоида С, сечения с другой стороны следует получить центральной симметрией относительно центра С. Для этого к полученным эллипсам нужно применить зеркальное преобразование (mirror3d) относительно плоскости, параллельной у и проходящей через точку С, с последующим поворотом (rotate) отображенных объектов на 180° относительно точки С.
Для повышения точности модели каркас гиперболоида (рис. 4, б) следует дополнить гиперболами hl...h4, каждая из которых создается как сплайн (spline) по конечным точкам осей эллипсов, выявляемым объектной привязкой Quadrant.
Применив к построенному каркасу команду loft и передав ей эллипсы в качестве образующих, а гиперболы в качестве направляющих, получим solid- объект.
На рис. 4, в показано определение оси симметрии гиперболоида, являющейся его важной метрической характеристикой. Поскольку алго-
ритм точного нахождения оси гиперболоида геометрическими построениями неизвестен [5], предложим вариант ее приближенного построения. Нужно из центра гиперболоида С создать сферу и найти линию ее пересечения (union) с гиперболоидом, содержащую две ветви Ы, Ь2, симметричные относительно центра С. Ось гиперболоида проходит через центр С параллельно прямой, соединяющий экстремальные точки 13, 14 этих ветвей. Можно определить направление оси и как вектор взгляда (3dorbit), при котором ветви Ы, Ь2 совмещаются как два равных эллипса в проекции на плоскость вида.
Задав положение секущих плоскостей перпендикулярно найденной оси и повторив построения, получим solid с каноническим каркасом (рис. 4, г), в котором эллипсы сечений перпендикулярны оси гиперболоида. Сечение, перпендикулярное оси и проходящее через центр, будет горловинным сечением - это также важная метрическая характеристика гиперболоида.
Применив к solid-объекту команду solidedit/ shell, получим гиперболоид как оболочку требуемой толщины. Оболочка на рис. 4, г имеет толщину 10-3 и изображена вместе с исходными направляющими dl ...d3, пересекающими ее каркас.
Гиперболический параболоид. Если направляющие параллельны некоторой плоскости, то изменяется качественная сторона создаваемой поверхности - возникает гиперболический параболоид. Рассматриваемый ниже алгоритм построения этой поверхности направлен на создание пространственного четырехугольника, составляющего основу его линейчатого каркаса.
Алгоритм реализуется в следующей последовательности. Находятся ось и центр симметрии поверхности. Строится пространственный четырехугольник каркаса, симметричный относительно центра поверхности. Равномерным делением противоположных сторон четырехугольника строится линейчатый каркас. Создается сетевая поверхность и на ее основе solid-обопочка.
Рассмотрим пример построения поверхности, если направляющие (line) заданы тремя отрезками dl...d3 (рис. 5, а и рис. 6, а), параллельными плос-
Рис. 4. Построение гиперболоида с эллиптическим каркасом
Рис. 5. Построение гиперболического параболоида с линейчатым каркасом
кости ХУ. Координаты с11: (33, 4, 76), (76, 63, 76); ей: (18,35,42), (73,28,42); с13: (10,51,25), (71,11,25).
Нахождение оси и центра симметрии гиперболического параболоида выполняется, исходя из того [5], что ось симметрии параллельна линии пересечения плоскостей параллелизма этой поверхности. Образующая и направляющая прямые, проходящие через центр симметрии, перпендикулярны своим плоскостям параллелизма.
Плоскость параллелизма направляющих задана - это плоскость ХУ системы координат, в которой построены направляющие й1 ..АЗ. Для нахождения плоскости параллелизма образующих построим образующие /7, f2, проходящие через конечные точки направляющей <11 (рис. 5, а). Образующие находятся с помощью вспомогательных секущих плоскостей, проходящих через направляющую с12 или с13 (см. плоскость а, рис. 1). Образующие копируем в произвольную точку 1. В нашем примере рекомендуем координаты точки 1: (-32, 42, 22). Поскольку при копировании обеспечивается параллельность прямых, получаем плоскость /7' П/3' как вторую плоскость параллелизма.
Находим прямую V пересечения плоскостей параллелизма. В плоскостях параллелизма строим перпендикуляры к прямой т'- перпендикуляр из точки 1, перпендикуляр из произвольной точки 2, принадлежащей плоскости ХУ. В нашем примере рекомендуем точку 2 с координатами (0,40,0).
Найдем образующую т как прямую, параллельную заданному направлению т' и пересекающую две направляющие с11, с13. Найдем также линию семейства направляющих п Цп' как прямую, пересекающую образующие /7, f2. Прямые т и п пересекаются в точке С, являющейся центром симметрии параболоида.
Строим пространственный четырехугольник, симметричный относительно найденного центра. Для этого на прямых т и п в обе стороны от цен-
тра С откладываем равные отрезки произвольной длины (в нашем примере рекомендуем длину 20...30) и находим точки 3...6. В точках 3, 4 строим образующие, в точках 5, 6- направляющие. На пересечении образующих с направляющими находим точки 7...10, являющиеся вершинами искомого четырехугольника.
Разделим (divide) пары противоположных сторон четырехугольника на равные части и соединим их отрезками прямых, создав семейства направляющих и образующих (рис. 5, а). Рекомендуем создать 5... 10 образующих и 3...10 направляющих. Командой loft создадим сеть, передав ей образующие и направляющие в порядке их следования. Командой thicken создадим из сети solid-оболочку необходимой толщины. На рис. 5, б созданная поверхность имеет толщину 0.01 и показана в каноническом виде (3 dor bit) с вертикальным положением ее оси симметрии /.
Задача. Рассмотрим в качестве примера применения моделей известную задачу о нахождении прямой, пересекающей четыре заданные скрещивающиеся прямые [6].
Пусть заданы отрезки четырех скрещивающихся прямых dl...d4 (рис. 6, а). Координаты dl...d3 приведены выше при построении модели параболоида, эти отрезки компланарны. Координаты d4: (83,40, 39); (16,17,72).
Для решения произвольно выбираем три прямые из четырех заданных и рассматриваем их как направляющие линейчатой поверхности. Находим две точки пересечения четвертой прямой с выбранной поверхностью. В найденных точках строим образующие прямые выбранной поверхности. Эти прямые будут искомыми, поскольку каждая из них, являясь образующей линейчатой поверхности, пересекает три выбранные прямые как направляющие, и проходит через точку, принадлежащую четвертой прямой.
б)
d3
в)
Рис. 6. Построение прямых, пересекающих четыре скрещивающиеся прямые
На рис. 6, б приведено решение, в котором в качестве направляющих выбраны прямые dl...d3. Построена парабола р как сечение параболоида, определяемого направляющими dl...d3, фронталь-но-проецирующей секущей плоскостью 8. Парабола р найдена «выходом в пространство» как коническое сечение по трем точкам пересечения плоскости 8 с dl...d3 и касательным, построенным в двух из трех точек пересечения (подобно эллипсу на рис. 3). Строить поверхность параболоида нет необходимости, параболоид на рис. 6, б приведен лишь для наглядности. Далее, в точках А, В пересечения параболы р с прямой d4 построены образующие параболоида fl, f2. Эти прямые являются ответом задачи. Прямая fl пересекает прямые dl...d4 в точках 1, А, 2, 3. Прямая f2 пересекает прямые dl...d4 в точках Г, В, 2\3’.
Задача имеет четыре варианта решения. Приведенный пример дает решение с параболоидом. Другие сочетания - с гиперболоидами. Взаимные пересечения поверхностей, задаваемых тройками направляющих прямых, происходят по четырем прямым, из которых две - это общие направляющие поверхностей, а две другие - найденные прямые fl, f2. Например, пересечение параболоида, задаваемого прямыми dl, d2, d3 с гиперболоидом, заданным прямыми dl, d3, d4, происходит по прямым dl, d3 та fl,f2 или по пространственному четырехугольнику 1-1 -3-3 (рис. 6, в). Рассмотренный пример отражает «редкий» случай распадения линии пересечения на четыре прямые [3,4].
Для оценки точности создаваемых ЗО-моделей через одну из направляющих и центр гиперболоида строили его сечение {section). Теоретически сечение представляет собой прямоугольник, одной из сторон которого является выбранная направляющая. Погрешность модели приводит к тому, что линия сечения является сплайном, вершины которого отклоняются от прямолинейности. Опре-
деляли среднее отклонение по десяти точкам сплайна. Как видно из рис. 7, для получения точной модели необходим каркас, содержащий 7...9 эллиптических сечений.
Количество сечений
Рис. 7. Влияние плотности каркаса на погрешность модели гиперболоида
Рассмотренные алгоритмы и модели являются весьма трудоемкими. Требуется многократное повторение однотипных операций. Поэтому, хотя все и модели были тестированы в ручном варианте, разработаны программы их построения на языке АйоЫбр [2].
Выводы
1. Полученные модели являются достаточно точными, позволяют по-новому, проще и нагляднее, чем методы начертательной геометрии, решать сложные задачи геометрического моделирования.
2. Решена задача о распадении линии пересечения гиперболоидов и параболоидов на четыре прямые.
3. Разработаны программы на языке АиюЫзр для построения рассмотренных моделей.
4. Модели представляют интерес с позиций освоения алгоритмов ЗБ-компьютерного моделирования.
Литература
1. Хейфец, А.Л. Новые возможности ЗО-моде-лирования линейчатых поверхностей в АШоСАИ 2007 / А.Л. Хейфец, А.Н. Логиновский // Состояние проблемы и тенденции развития графической подготовки в высшей школе: сб. тр. Всероссийского совещания заведующих кафедрами графических дисциплин вузов РФ, 20—22 июня 2007 г., г. Челябинск. - Челябинск: Изд-во ЮУрГУ, 2007. -Т.2-С. 125-133.
2. Хейфец, А.Л. Инженерная компьютерная гра-фикаАгЛоСАО. Опыт преподавания и широта взгляда/
А.Л. Хейфец. - М.: Диалог-МИФИ, 2002. - 432 с.
3. Хейфец, А.Л. ЗО-моделирование частных случаев пересечения поверхностей второго порядка
в пакете АШоСАй / А.Л. Хейфец, С.В. Ерохин // Вестник ЮУрГУ. Серия «Строительство и архитектура». — 2003. - Вып. 2. -№7(23). — С. 93-95.
4. Хейфец, А.Л. ЗО-компьютерное моделирование пересечения эллиптических конусов при их двойном соприкосновении. АШоСАБ. /А.Л. Хейфец, В.А. Короткий // СгарЫсСоп ’2006. Труды конференции. 16-я Международная конференция по компьютерной графике и ее приложениям. — Новосибирск: «Прайс-курьер». 2006. — С. 128-133.
5. Короткий, В.А. Метрические свойства поверхностей второго порядка: учебное пособие /
В.А. Короткий. — Челябинск: Изд-во ЮУрГУ, 2001. — 70 с.
6. Пеклич, В.А. Задачи по начертательной геометрии: учебное пособие для втузов / В.А. Пеклич, С.Н. Павленко. - М. : Высш. шк, 1999. - 139 с.
Поступила в редакцию 24 апреля 2008 г.
Хейфец Александр Львович. К.т.н, профессор, заведующий кафедрой графики ЮУрГУ. E-mail: [email protected].
Alexander L. Kheyfets. Candidate of Engineering Science, professor, Head of the Graphics Department, SUSU (South Ural State University). E-mail: [email protected].
Логиновский Александр Николаевич - к.т.н, доцент кафедры графики ЮУрГУ. Alexander N. Loginovsky. Candidate of Engineering Science, associate professor of the Graphics Department, SUSU (South Ural State University).