Раздел 3. Естественные науки. МНТК ААИ России «Приоритеты развития отечественного автотракторостроения и подготовки инженерных и научных кадров» 4-го международного научного симпозиума «Современное автотракторостроение и высшая школа России», посвящённого 140-летию МГТУ МАМИ под ред. проф., д.т.н. Бахмутова С.В. ISBN 5-94099-036-3. Москва, МГТУ «МАМИ», 2005. Книга 2. Стр. 459-464.
4. Сиротский А.А. Применение LABVIEW для автоматизации лазерных измерительных систем и научного эксперимента. Тезисы докладов научно-практической конференции «Образовательные, научные и инженерные приложения в среде LabVIEW и технологии National Instruments» ESEA-NI-04. Москва, РУДН, 2004.
5. Сиротский А.А. Экспериментальные исследования лазерной измерительной системы с двумя оптически обращёнными каналами. Материалы 49-й МНТК ААИ «Приоритеты развития отечественного автотракторостроения и подготовки инженерных и научных кадров». Секция 3 «Автоматизированное управление, электроника и электрооборудование автотракторной техники», часть 1. М., МГТУ «МАМИ», 2005 г. 2 стр.
6. Сиротский А.А. Технологические области применения лазерных измерительных систем для контроля прямолинейности и положения осей отверстий в различных деталях машиностроения. Материалы 49-й МНТК ААИ «Приоритеты развития отечественного автотракторостроения и подготовки инженерных и научных кадров». Секция 8 «Механообработка и сборка. Методы и средства автоматизации автотракторного производства, оптимизация технологических систем», часть 2. М., МГТУ «МАМИ», 2005 г. 3 стр.
Решение задач с плоскими треугольными элементами в граневых моделях
поверхностей
к.т.н. Суслин В.П. МГТУ «МАМИ»
Для граневых моделей поверхностей часто используются плоские треугольники в качестве аппроксимирующих элементов. К примеру, геометрические модели в формате STL используют именно такие аппроксимации. При этом с плоскими треугольными элементами решаются различные геометрические задачи, например такие, как определение принадлежности точки треугольнику, определение точки пересечения прямой и плоскости треугольника и др.
Рассмотрим первую задачу. Она является частным случаем задачи о принадлежности точки многоугольнику. Это известная задача в экранной графике. Для ее решения используется два метода, описанные в различных монографиях по машинной графике [1, 2]. Один основан на вычислении суммы углов, а второй - на подсчете числа пересечений луча, проходящего через тестируемую точку, со сторонами многоугольника. В обоих случаях требуется преобразовать систему координат так, чтобы координатная плоскость совпала с плоскостью треугольника, т.е. привести пространственную задачу к плоской.
В программном обеспечении, разработанном в лаборатории САПР МГТУ «МАМИ», используется другой метод решения задачи о принадлежности точки треугольнику, а также ряда других задач, связанных с треугольными элементами. Он не требует преобразования пространственной системы координат в плоскую, экономичен по объему вычислений и прост по логике.
Пусть имеется невырожденный треугольный элемент V1V2V3, определенный вершинами V =(x1 y1z1) , V2 =(x2y2z2 ) и V3 =(x3y3z3) . Введем двумерную параметризацию с
параметрами u и v так, чтобы в вершине Vi было u, v = 0, на стороне V1V2 - V = 0, 0 < u < 1 и на стороне V1V3 - u = 0, 0 < V < 1 (рис. 1). Такая параметризация связана с косоугольной системой координат [3].
Рис. 1. Утверждение 1.
Векторная функция
Я(и^) = (У2 - V1 )и + (У3 - V1 )у + V1 (1)
определяет точки плоскости треугольного элемента.
Доказательство
Пусть N = (ПхПуПг ) - вектор нормали плоскости треугольного элемента. Тогда уравнение плоскости будет
Пхх + Пуу + "и - Р = 0 (2)
Запишем компоненты функции (1)
х(и,у) = (х2 - х1)и + (х3 - х1 )у + х1,
у (u, V) = (У2 - У1)и + (Уз - У1 ^ + У1,
г(и,V) = (- )и + (- ^ +
и подставим их в уравнение (2).
После приведения подобных членов получим
[Пх (х2 - х1) + Пу (У 2 - У1) + П (2 - )] и + [Пх (х3 - х1) + Пу ( Уз - У1) + П ( - )] +
+ ( + Пуу1 + «Ы - Р) = 0
В этом уравнении коэффициенты при и и V равны нулю, т.к. являются скалярными произведениями ортогональных векторов. Свободный член также равен нулю, т.к. в нем координаты вершины У1 треугольника подставлены в уравнение его плоскости.
Таким образом, функция (1) обращает уравнение (2) в тождество, что и доказывает утверждение 1.
Утверждение 2.
Для точки плоскости треугольного элемента, лежащей внутри треугольника или на его границах, имеют места неравенства: 0 < и < 1, 0 < V < 1, и + V < 1.
Доказательство
Два первых неравенства выполняются по определению параметрических координат. Докажем третье неравенство.
Подставим в формулу (1) V = 1 -и. Получим параметрическое уравнение прямой Я(и, V) = (У2 - У3)и + У3, проходящей через вершины У2У . Таким образом, на третьей стороне треугольника имеет место равенство и + V = 1. Через произвольную точку Т с параметрическими координатами и^т, лежащую внутри треугольника, проведем координатную
прямую, параллельную оси и (рис. 2). z
Рис. 2.
На этой прямой V = VT, а u изменяется равномерно от —да до +да . Внутри треугольника, включая границы, будет u = |0,(1 — VT )J . Так как точка выбрана произвольно, то для
любой точки внутри треугольника, включая границы, будет выполняться неравенство 0 < u < 1 — V, или u + V< 1, что и требовалось доказать.
Проведем несколько задач, которые можно решать методом параметризации треугольника.
Задача 1. Проецирование точки на треугольник.
Имеется треугольник, заданный вершинами V1, V2, V3, и точка T с координатами x, y,
z, в общем случае не лежащая в плоскости треугольника. Требуется найти проекцию этой
точки на плоскость треугольника и определить принадлежность проекции точки треугольнику.
Решение.
Задачу будем решать методом наименьших квадратов путем минимизации расстояния от точки до плоскости треугольника. Функцию, описывающую треугольник, представим в
виде г(u, v) = au +ßv +Y, где a = (axayazf, ß = (ßxßyßz)T, Y = (YxYyYz)T - векторные коэффициенты, определенные в формуле (1). Тогда задача минимизации запишется так:
min u,v(au +ßv + Y — t)2
Приравняв нулю частные производные этой функции по u и v, получим систему из двух линейных уравнений с двумя неизвестными
a11u + a12v = b1 a21u + a22v = b2
где: a11 =ax2 +ay2 +az2 , a12 = a 21 =axßx +ayßy + azßz , °22 =ßx2 + ßy2 +ßz2,
b1 = ax (x — Yx ) + ay ( У — Yy ) + az ( z — Yz ) , Ь2 =ß x (x — Yx ) + ß y (y — Yy ) + ß z (z — Y z )
Определитель этой системы равен нулю только в том случае, если треугольник вырожденный. Во всех других случаях система уравнений положительно определена и имеет единственное решение. Оно дает значения параметров u и v проекции точки на плоскость треугольника.
Для решения задачи нужно выполнить около 60 арифметических операций, включая проверки 0 < u < 1, 0 < v < 1, u + v < 1 для определения принадлежности точки треугольнику и вычисление координат точки по формуле (1).
Раздел 3. Естественные науки.
Задача 2. Определение положения точки (вне/внутри треугольника).
Пусть известно, что точка ? = (х, у, 2) лежит в плоскости треугольника с вершинами V, V, V . Требуется определить положение точки - вне или внутри треугольника.
Решение.
Подставим координаты точки в формулу (1), используя те же обозначения, что и в задаче 1. Получим три линейных уравнения с двумя неизвестными:
а хи + рху = х -ух,
а уи + РуУ = х-Уу,
аи +р2^ = х -У2 .
Эту переопределенную систему будем решать методом Гаусса с выбором главного элемента по столбцам. Так как треугольник невырожденный, то вектор а имеет хотя бы одну ненулевую компоненту. Поэтому возможен выбор главного элемента в 1-ом столбце и последующее деление на этот элемент. После перестановки уравнений и исключения неизвестного наибольший элемент следует искать во втором столбце в 2-х последних уравнениях. Из выбранного уравнения найдем V и затем подстановкой в 1-ое уравнение вычислим и. Далее нужно выполнить операции сравнения 0 < и < 1, 0 < V < 1, и + V < 1 для определения положения точки. Всего эта процедура включает 31 арифметическую операцию, в том числе 9 операций вычисления коэффициентов, 3 операции выбора главных элементов, 9 операций исключения неизвестных , 4 операции обратного хода, 6 операций сравнения и и V с предельными значениями.
Задача 3. Определение точки пересечения прямой и плоскости треугольника.
Требуется найти точку пересечения прямой и плоскости треугольника и определить положение этой точки относительно треугольника.
Решение.
Пусть прямая задана уравнениями двух пересекающихся плоскостей
а1х + Ь1 у + с12 - р1 = 0,
а2 х + Ь2 у + с2 2 - р2 = 0, а треугольник - параметрической векторной функцией Г (и, V) = аи + Ру + у .
Подставим компоненты векторной функции в уравнения плоскостей и после приведения подобных членов получим систему из двух линейных уравнений с двумя неизвестными и и V:
а11и + а12У = Ь1 а21и + а22у = Ь2.
Если система имеет решение, то можно найти значения параметров и и V и определить положение точки пересечения. При необходимости можно вычислить пространственные координаты точки пересечения по векторной функции треугольника. Решение задачи требует выполнения 67 арифметических операций, из которых 12 затрачиваются на вычисление координат точки пересечения.
Многолетнее применение рассмотренных методов решения задач в прикладном программном обеспечении показало их работоспособность и высокую надежность.
Литература
1. Гилой В. Интерактивная машинная графика. М.: Мир, 1981.
2. Майкл Ласло. Вычислительная геометрия и компьютерная графика на С++. М.: БИНОМ, 1997.
3. Фокс А., Пратт М. Вычислительная геометрия. Применение в проектировании и на производстве. М.: Мир, 1982.