Алгоритм построения развертки поверхностей
А.В. Замятин, Е.А. Замятина
Многие поверхности, применяемые при проектировании современных зданий и сооружений, изготавливаются из плоских материалов (металл, пластик, фанера и т.д.). Для изготовления таких поверхностей необходимо выполнить их развертку. В статье приведен алгоритм построения условной развертки поверхностей методом триангуляции [1, 2]. Алгоритм реализован в среде ObjectARX для AutoCAD [3] на языке С+ + [4].
Рассмотрим построение условной развертки нелинейчатой поверхности методом триангуляции. Пусть задана нелинейчатая поверхность сетью, представляющей собой два пересекающихся набора линий /, и т, (рис. 1).
Рис. 1 Развертка поверхности методом триангуляции
Возьмем отсек поверхности, ограниченны криволинейным четырехугольником ABCD. Заменим отрезки кривых, ограничивающих заданный отсек, на отрезки прямых. Так как отрезки линий имеют небольшую длину, погрешность будет не велика. Построим диагональ AC четырехугольника. Найдем натуральную величину треугольника ABC - треугольник A ’B’C’ (на рис. 1 эта натуральная величина обозначена н.в. AABC). К общей стороне A ’B’ достроим натуральную величину треугольника ADC - треугольник A’D’C’ (на рис. 1 - н.в. AADC). Построенный таким образом плоский четырехугольник A ’B’C’D’, является условной разверткой отсека поверхности ABCD. Выполняя данную операцию для всего отсека заданной поверхности, получи его условную развертку.
Рассмотрим вопрос определения натуральных величин треугольников. Для этого необходимо привести плоскость треугольника в положение плоскости уровня, т.е. сделать ее параллельной одной из плоскостей проекций. Алгоритм решения данной задачи, основанный на двух поворотах вокруг осей координат, приведен в [5]. В рассматриваемом алгоритме плоскости треугольников совмещались с координатной плоскостью xOy поворотом вокруг горизонтального следа плоскости. Данный метод в начертательной геометрии называется методом совмещения [2]. Пусть в пространстве задан треугольник ABC (рис. 2). Координаты вершин треугольника обозначим A (xA yA zA), B (xB yB zB), C (xC yC zC).
Рис. 2 Совмещение плоскости треугольника с плоскостью хОу
Для удобства, выполним параллельный перенос треугольника таким образом, чтобы точка А, в новом положении, находилась в начале системы координат. После проведенного преобразования координаты точки А' (0 0 0), координаты точек В’ и С’
найдем по соотношению
(х’ у’ z’)=(x у z)- (хА уА гА). (1)
Уравнение плоскости треугольника имеет вид [6]
У ‘
х
х'ъ
х'г
Ув
Ус
= 0.
(2)
Запишем уравнение (2) в виде Ах + Вх + Сх = 0,
где
А = У'в г г'в г ; В = — х'в г г'в г ; С == х'в Ув г г
Ус 2С хс 2С *с Ус
(3)
Уравнение горизонтального следа плоскости И0 определяется следующей системой уравнений
(Ах + Ву + Сг = 0, , .
{ г = 0. ( )
Координаты направляющего вектора горизонтального следа плоскости, с учетом
(4), равны N п {В — А 0 ]. Обозначим направляющий единичный вектор следа и его координаты через п { к I т]. к, I, т - направляющие косинусы к0, равные
к = ИШ'л = — 7Шг-'т = 0. _ (5)
Определим угол, который составляет вектор нормали плоскости (3) N {А В С] с осью 02
р = а г с С03 ТжШШ- (6)
Повернем заданный треугольник вокруг горизонтального следа плоскости к0 на угол ф. Плоскость треугольника АВС совместится с координатной плоскостью хОу. Точка А ’’, останется в начале координат, координаты точек В’’ и С’’ найдем по формуле [7]
(х'' у" г'') = П(р,к,1,т)(х' у' г'), (7)
где
П (р ,к,1 ,т) =
(к2 + с о эр( 1 — к2) к 1( 1 — с о эр )—тэ і пр к 1( 1 — с о э р) + т э іп р I2 + с о э р (1 — I2 ) кт( 1 — с о э р) — 1э іпр 1т( 1 — с о э р) + к э і п р
кт( 1 — с о э р) + I э і п р'' 1т( 1 — с о э р) — к э і п р т2 + с о э р (1 — т2 )
Пусть в пространстве заданы два треугольника АВС и БЕЕ, имеющие общие стороны ЕЕ. Описанным выше способом, преобразуем их таким образом, чтобы они находились в координатной плоскости хОу (рис. 3).
Рис. 3 Совмещение треугольников
Совместим эти треугольники вдоль общих сторон А’’С’’ и Е"Е", причем,, чтобы вершины В’’ и Е’’ располагались по разные стороны относительно совпадающих сторон.
Определим угол между векторами А'’С’' и Е)П))''
п х'с х'р +Ус Ур +г'с'г'р
в = аг с с о 5 , с *—:±- I.—. * .
= о
х'с 2 +Ус 2 + г'с 22 +УР 2 + 4' 2 Повернем треугольник Е’’Е’’Е’’, вокруг оси Ог. Новые координаты точек этого треугольника, получим по соотношению
(х''' у''' г ' ' ')=П( в ,0,0,1)(х'' у'' г'').
Проверим, находятся ли вершины треугольников по разные стороны, относительно общих сторон. Запишем уравнение прямой А’’С’’ на плоскости хОу, учитывая, что точка
А ’’ находится в начале координат
х у
х'с у'с
или
А 2_х + Вх = 0 , где А г = у', Вг = — х'. Если
Бдп(А ! х"' + ВууЧс) = Бд п(А гх' + В^'О, то вершины находятся по одну сторону относительно общих сторон, поэтому повернем треугольник Е’’Е’’Е’’ вокруг совпадающих сторон на угол равный п. При данном преобразовании изменятся только координаты точки Б ’’, найдем их по формуле (х'''' у'''' г''' ') = П(п,к ! ,1 ±,т ± )(х''' у''' г'''), где ки I], т] - направляющие косинусы совпавших сторон, вычисляемые по соотношениям, аналогичным (5).
Выполняя приведенные операции для всего заданного отсека поверхности, построим его условную развертку.
Пример работы алгоритма, приведен на рис. 4 и 5. На рис. 4 представлена заданная поверхность. Поверхность строилась по алгоритму, описанному [8]. На рис. 5 -построенная развертка данной поверхности.
Рис. 5 Развертка поверхности
Описанный алгоритм интегрирован в систему AutoCAD, что позволяет использовать его для построения разверток поверхностей, созданных в данной системе. Aл-горитм также может быть использован в качестве модуля автоматизированных систем проектирования.
Литература
1. Бубенников A3, Громов М.Я. Начертательная геометрия [Текст] / A3. Бубенни-ков, М.Я. Громов. - М.: Высшая школа, 1973. - 436 с.
2. Фролов, CA. Начертательная геометрия [Текст] / СА. Фролов. - М.: Машиностроение, 1983. - 240 с.
3. Полищук, Н.Н. AutoCAD: разработка приложений, настройка и адаптация [Текст] / Н.Н. Полищук. - СПб.: БХВ - Петербург, 2006. - 992 с.
4. Секунов, Н.Ю. Visual C++ Визуальная среда программирования [Текст] / Н.Ю.Секунов. - СПб.: БХВ - Петербург, 1999. - 960 с.
5. Замятин, A3. Aлгоритм построения точек пересечения нелинейчатых поверхностей [Электронный ресурс] // «Инженерный вестник Дона», 2010, №3. - Режим доступа: http://www.ivdon.ru/magazine/issue/95/ (доступ свободный) - Загл. с экрана. -Яз. рус.
6. Aлександров, П.С. Лекции по аналитическая геометрии [Текст] / П.С. Aлександров. - М.: Наука, 1968. - 912 с.
7. Фокс A. Пратт М. Вычислительная геометрия [Текст] / A. Фокс, М. Пратт. -М.: Мир, 1982. - 304 с.
В. Замятин A3., Сухомлинова В.В. Aлгоритмы визуализации нелинейчатых поверхностей // Известия вузов. Северокавказский регион. Технические науки, 2010. -№6. - С. 30-39.