Алгоритм согласования массива точек и отсека поверхности
А.В. Замятин, Е.А. Замятина, Н.А. Сопчак Донской государственный технический университет, г. Ростов-на-Дону
Аннотация: В статье приведен алгоритм построения массива точек, поставленных в соответствие точкам отсека поверхности. Показаны формулы расчета для координат точек. Рассмотрены возможные случаи расположения угловых точек массива. И сделан вывод о том, что данный алгоритм поможет при моделировании акустических, оптических и других процессов.
Ключевые слова: массив точек, отсек поверхности, алгоритм согласования точек массива, геометрическое моделирование, радикс-вектор.
Для задач конструирования поверхностей сплайновыми методами [1-3] часто необходимо приводить в соответствие точечные массивы и отсеки поверхностей. Пусть в трехмерном пространстве задан двумерный массив точек Ац, где i = = 1,2*,,, и отсек поверхности Q
(1)
точки массива Будем считать, что все точки Г2 обыкновенные.
Рассмотрим алгоритм согласования точек массива А. и точек отсека поверхности Г2 [4,5].
О
Под согласованием подразумевается установление взаимно однозначного соответствия между точками массива и точками отсека поверхности, таким образом, чтобы сумма длин отрезков, соединяющих соответственные точки, была минимальной.
Рис. 1. - Заданные массив точек и отсек поверхности
Создадим массив состоящий из точек
отсека поверхности О. Его размерность равна
размерности массива Ац (тгХт). Радиусы - векторы точек массива В^ обозначим через В{^.
Определим угловые точки отсека Г2 и поместим их в массив В^, учитывая (1)
Найдем сумму длин отрезков соединяющих соответственные угловые точки массивов Ау и В^
а= - Ли | + -А1т | + |?в1 - Лп1| + - Аат \ (3)
а А А
а А А А
Рис. 2. - Возможные случаи взаимного расположения угловых точек массива
и отсека поверхности
:
Возможные случаи взаимного расположения угловых точек массива ^
и отсека Г2 приведены на рис. 2. В случае, приведенном на рис. 2а, сумма (3) минимальна. Предположим, что Ац и О в плане имеют форму близкую к
прямоугольной. Поэтому вид &согласованный А<<, будет иметь угловые
точки расположенные так же, как и на рис. 2а.
Определим, какой из случаев, приведенных на рис. 2, задан изначально. Для этого вычислим (3) и присвоим полученное значение элементу массива Изменим положение угловых точек в Ву, повернув их на 90° против
часовой стрелки вокруг оси Oz (рис. 3)
= ^lm! & lift = ^mitF ^nm = ^Jtli ^Jtl =
(4)
Вычислим сумму (3) и присвоим ее значение 32 Аналогичным образом получим и d4. Повернем угловые точки By на ISO0 вокруг оси Ох (рис. 4)
^11 — ^Imi — — Biaaj т _ ^nl
(5)
Ai
Bui
-r* Ввт
X *■
Рис. 3. - Поворот утпоиыхточгена Рис, 4, - Поворот утл ояыхточеена вокруг оси Oi 1 вокруг оси Ох
Сумму (3), в этом случае, присвоим затем, поворачиваем угловые
J
точки на 90е (4) и присваиваем вычисленные суммы о^, и я!3. Находим
минимальный элемент массива Если минимальное значение имеет йъ то
массив и отсек поверхности расположены так, как это показано на рис. 2а. Точки массива вычисляем по формуле:
4 - ц!
(6)
где Ut = —(i - = — (j- 1),
г п-1 1 т-1v
Если минимальным элементом является то это расположение приведено на рис. 26. при данном расположении формула для вычисления В^
имеет вид
(7)
е
Если массив и отсек расположены так, как показано на рис. 2в, то минимальным будет значение тогда определим по формуле (6) и
повернем его содержимое по часовой стрелке на ISO0 вокруг оси Oz
^tj — ^лЧ+lst-
/+1-
(8)
В случае, приведенном на рис. 2г, минимальным будет dA, тогда Вц
определяем по формуле (7) и по (8) поворачиваем на ISO® вокруг оси Oz. Если минимальным является (рис. 2д), By определяем по формуле (6) и поворачиваем на 180^ вокруг оси Ох по часовой стрелке
Bif -^¡ff! /II"
(9)
IH Инженерный вестник Дона. №4 (2017) Н| ivdon.ru/ru/magazine/arcliive/n4y2017/4485
При минимальном (рис. 2е) Вц определяем по (7), затем
поворачиваем на 18О0 вокруг оси Oz (8) и вокруг оси Ох (9). При if7
минимальном (рис. 2ж) - Btj определяем по (6) и поворачиваем вокруг оси
Oz (8) и Ох (9). При минимальном значении iij (рис. 2з) Bijr находим по (7),
поворачиваем вокруг оси Ox (9), Oz (8) и снова вокруг Ox (9).
Для большей наглядности методов определения массива Btj в
различных случаях начального взаимного положения массива Aijt и отсека Q
приведены в таблице.
Таблица №1
Определение
Номер минимального элемента rf, Формулы вычисления Преобразования Соответствующий пример на рис. 2
1 * it-1 ' ; — а
2 ; 1 и-1 ^ — б
3 Btj = ^i-i+im-i+i в
IH Инженерный вестник Дона. №4 (2017) Н| ivdon.ru/ru/magazine/arcliive/n4y2017/4485
4 в.. = м ;; ; 1 it-1 ^ i — &П-1+ lKl-i+1 г
5 ; i in-■ ' д
6 ; = . ;■■; ; f TV—1 Btj = ^i-i+im-i+i е
7 ^-^■/-li; ; i in- Btj = ^i-i+im-i+i ж
8 ; f к 1 ■ з
Разработанные алгоритмы реализованы в среде ObjectARX для системы AutoCAD[6-8] на языке Visual C++[9-10]. Примеры работы алгоритмы приведены на рис. 5. На рис. 5а показаны массив и отсек в начальном положении, на рис. 5б - после согласования. Разработанный алгоритм может быть использован при решении практических задач при моделировании акустических, оптических и других процессов.
;
а)
б)
Рис. 5. - Результат работы алгоритма
Литература
1. Притыкин Ф.Н., Осадчий А.Ю. Способ кодирования информации при задании геометрической модели исполнительных механизмов роботов //
ivdon.ru/ru/magazine/archive/n2y2014/2363.
2. Гданский Н.И., Карпов А.В., Бугаенко А.А. Алгоритм построения кубических интерполяционных сплайнов в задачах управления работой приводов с прогнозированием динамики нагрузки // Инженерный вестник Дона. 2012. №3. URL: ivdon.ru/ru/magazine/archive/n3y2012/935.
3. Завьялов Ю.С., Леус В.А., Скороспелов В.А. Сплайны в инженерной геометрии. М.: Машиностроение, 1985. 224 с.
4. Faux I. D., Pratt Michael J. Computational Geometry for Design and Manufacture. Michigan: Horwood, 1979. 331 p.
5. Adams J.Alan, Rogers David F. Mathematical Elements for Computer Graphics. 3 publ. New York: McGraw-Hill Publishing Co., 1976. 352 p.
6. Полещук Н.Н. Разработка приложений и адаптация. СПб.: БХВ-Петербург, 2004. 424 с.
Инженерный
вестник
Дона. 2014. №2. URL:
In Инженерный вестник Дона. №4 (2017) Н| ivdon.ru/ru/magazine/arcliive/n4y2017/4485
7. Полещук Н.Н. Программирование для AutoCAD. М.: ДМК Пресс, 2015. 462 с.
8. Полещук Н.Н. Самоучитель AutoCAD. СПб.: БХВ-Петербург, 2011. 464
с.
9. Мюллер Дж. Visual C++. СПб.: БХВ-Петербург, 1998. 720 с.
10. Шмидт Г. Самоучитель С++. СПб.: БХВ-Петербург, 2003. 688 с.
References
1. Pritykin F.N., Osadchiy A.Yu. Inzenernyj vestnik Dona (Rus). 2014. №2. URL: ivdon.ru/ru/magazine/archive/n2y2014/2363.
2. Gdanskiy N.I., Karpov A.V., Bugaenko A.A. Inzenernyj vestnik Dona (Rus). 2012. №3. URL: ivdon.ru/ru/magazine/archive/n3y2012/935.
3. Zav'yalov Yu.S., Leus V.A., Skorospelov V.A. Splayny v inzhenernoy geometrii.[ Splines in engineering geometry] M.: Mashinostroenie, 1985. 224 p.
4. Faux I. D., Pratt Michael J. Computational Geometry for Design and Manufacture. Michigan: Horwood, 1979. 331 p.
5. Adams J.Alan, Rogers David F. Mathematical Elements for Computer Graphics. 3 publ. New York: McGraw-Hill Publishing Co., 1976. 352 p.
6. Poleshchuk N.N. Razrabotka prilozheniy i adaptatsiya. [Application Development and Adaptation]. SPb.: BKhV-Peterburg, 2004. 424 p.
7. Poleshchuk N.N. Programmirovanie dlya AutoCAD. [Programming for AutoCAD] M.: DMK Press, 2015. 462 p.
8. Poleshchuk N.N. Samouchitel' AutoCAD. [AutoCAD Self-Tutorial] SPb.: BKhV-Peterburg, 2011. 464 p.
9. Myuller Dzh. Visual C++. SPb.: BKhV-Peterburg, 1998. 720 p.
10. Shmidt G. Samouchitel' S++. [S++ Self-Tutorial] SPb.: BKhV-Peterburg, 2003. 688 p.