Алгоритм построения луча от поверхности общего вида
Программный алгоритм построения луча, отраженного от поверхности общего вида. Вычисление координат точки пересечения луча с поверхностью с заданной точностью. Расчет значений свободных членов системы. Определение коэффициентов уравнения лучевой плоскости.
Рубрика | Математика |
Вид | лекция |
Язык | русский |
Дата добавления | 26.09.2016 |
Размер файла | 293,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования
«Ростовский государственный строительный университет»
Алгоритм построения луча от поверхности общего вида
В.В. Сухомлинова
Ростов-на-Дону, 2006
Рассмотрен программный алгоритм построения луча, отраженного от поверхности общего вида. Аналитические зависимости решения данной задачи приведены в [5].
Программный алгоритм реализован в системе программирования Visual C++, версии 6.0, в среде операционной системы Windows XP [7,8].
Поверхность задана в виде файла F, формат которого описан в [2]. Координаты точек определяющих падающий луч хранятся в переменных xl1, yl1, zl1, xl2, yl2, zl2.
Рассмотрим ряд вспомогательных функций, которые в дальнейшем будут использоваться в основном алгоритме.
Функция V_kp_r определяет хорду [Lij, Lij+1] линии li, исходящуюся на кратчайшем расстоянии от заданной точки. Входными параметрами являются указатель на открытый файл F1, созданный функцией dif_v, алгоритм которой описан в [4], координаты точки, хранящиеся в переменных x, y, z и номер линии, находящийся в переменной n. Координаты концевых точек найденной хорды записываются в переменные xs1, ys1, zs1, xs2, ys2, zs2, координаты векторов в этих точках перемещаются в переменные As1, Bs1, Cs1, As2, Bs2, Cs2.
Рассмотрим блок-схему алгоритма, приведенную на рис. 1.
1. Условие: если рr = 0 и n_l = n, то вычисление ведется по ветви "Да", иначе - по ветви "Нет".
2. Считать запись из файла F1 и присвоить значение признака переменной pr, значение номера линии - переменной n_l.
3. Считать запись из файла F1 и присвоить значения координат точки переменным x1, y1, z1, координаты вектора присвоить переменным A1, B1, C1.
Рис. 1
4. Считать запись из файла F1 и присвоить значения координат точки переменным x2, y2, z2, координаты вектора присвоить переменным A2, B2, C2.
5. Вычислить коэффициенты уравнения (1), приведенного в [5] и присвоить их значение переменным k и b.
6. Вычислить коэффициенты уравнения (2), приведенного в [5] и присвоить их значение переменным k1 и b1.
7. Вычислить координаты точки по соотношениям (3), приведенным в [5], и присвоить их значения переменным x, y.
8. Условие: если выполняется неравенство (3а), то вычисление ведется по ветви "Да", иначе - по ветви "Нет".
9. Присвоить значение переменным xs1 = x1, ys1 = y1, zs1 = z1, xs2 = x2, ys2 = y2, zs2 = z2, As1 = A1, Bs1 = B1, Cs1 = C1, As2 = A2, Bs2 = B2, Cs2 = C2.
10. Присвоить значения переменным x1 = x2, y1 = y2, z1 = z2, A1 = A2, B1 = B2, C1 = C2.
Функция t_per вычисляет координаты точки пересечения луча с поверхностью с заданной точностью . Отсек поверхности, где находятся точки пересечения, аппроксимирован по методу Фергюсона [3,4], приближенное положение точки определяется способом, описанным в [1,2]. Приближенные координаты точки пересечения хранятся в переменных xp, yp, zp. Найденные значения координат точки пересечения хранятся в переменных xper, yper, zper, найденные значения параметров хранятся в переменных uper, vper.
Рассмотрим блок-схему алгоритма, приведенную на рис. 2.
1. Присвоить значения переменным xper = xp; yper = yp; zper = zp; u = 0,5; v = 0,5.
2. Вычислить коэффициенты системы (10), приведенной в [5], и присвоить их значения элементам массива а [i] [j].
3. Вычислить значения свободных членов системы (10), приведенной в [5] и присвоить их значения элементам массива b [i].
4. Выполнить функцию Gauss алгоритм которой приведен в [9].
5. Присвоить значения переменным
xper = xper + x[1], yper = yper + x[2], zper = zper + x[3], uper = uper+ x[4], vper = vper+ x[5].
6. Присвоить значения переменным max = 0, i = 0.
7. Условие: если i 5, то вычисление ведется по ветви "Да", иначе - по ветви "Нет".
8. Условие: если | x [i] | > max, то вычисление ведется по ветви "Да", иначе - по ветви "Нет".
Рис. 2
9. Присвоить значение переменной max =|x [i]|.
10. Увеличить значение переменной i на 1.
11. Условие: если max > , то вычисление ведется по ветви "Да", иначе - по ветви "Нет".
Рассмотрим функцию otr, которая вычисляет отраженный луч. Данная функция является основной функцией алгоритма.
Рассмотрим блок-схему алгоритма, приведенную на рис. 3.
1. Выполнить функцию l_per, алгоритм которой описан в [2].
Рис. 3
2. Выполнить функцию pr_t_per, алгоритм которой описан в [2] и присвоить найденные приближенные координаты точки пересечения переменным xp, yp, zp.
3. Выполнить функцию dif_v, алгоритм которой описан в [4].
4. Выполнить функцию v_kp_r, с параметрами xp, yp, zp, n и присвоить координаты найденных точек переменным x11, y11, z11, x12, y12, z12, координаты векторов присвоить переменным xv11, yv11, zv11, xv12, yv12, zv12.
5. Выполнить функцию v_kp_r, с параметрами xp, yp, zp, n+1 и присвоить координаты найденных точек переменным x21, y21, z21, x22, y22, z22, координаты векторов присвоить переменным xv21, yv21, zv21, xv22, yv22, zv22.
6. Выполнить функцию opr_kl, алгоритм которой описан в [4].
7. Выполнить функцию Ferg, алгоритм которой описан в [4].
8. Выполнить функцию t_per.
9. Вычислить коэффициенты уравнения касательной плоскости (12), приведенного в [5], и присвоить их значения переменным A, B, C.
10. Вычислить коэффициенты уравнения лучевой плоскости (18), приведенного в [6], и присвоить их значения переменным A1, B1, C1.
11. Вычислить углы и для лучевой плоскости по формулам (14), (15), приведенным в [10].
12. По формуле (19), приведенной в [6], вычислить координаты точек задающих падающий луч и точку пересечения в новой системе координат.
13. По формуле (21), приведенной в [6], вычислить координаты точки, лежащей на нормали.
14. По формуле (19), приведенной в [6], вычислить координаты точки лежащей на нормали в новой системе координат.
15. По формулам (23) и (24), приведенным в [6], вычислить координаты точек после сдвига начала системы координат в точку пересечения.
16. По формуле (25), приведенной в [6], вычислить угол .
17. По формуле (26), приведенной в [6], вычислить координаты точки падающего луча, после поворота системы координат на угол .
18. По формуле (28) найти координаты точки отраженного луча симметричной точке луча относительно оси Oz.
19. По формуле (29), приведенной в [6], найти координаты точки отраженного луча в исходной системе координат.
Пример расчета приведен на рис. 4 в ортогональных проекциях, на рис. 5 в аксонометрической проекции.
Рис. 4
Рис. 5
Рассмотренный алгоритм может служить основой для автоматизированных систем расчета акустических характеристик помещений.
Литература
координата луч плоскость поверхность
1. Кубарев А.Е., Замятин А.В., Сухомлинова В.В. Построение точки пересечения прямой с поверхностью. - Ростов-на-Дону: Известия РГСУ № 6, 2006.
2. Замятин А.В., Сухомлинова В.В. Алгоритм построения точки пересечения прямой с поверхностью. Депонирована в ВИНИТИ 03.02.06, № 119-В2006.
3. Замятин А.В., Сухомлинова В.В. Аппроксимация порции поверхности по методу Фергюсона. - Ростов-на-Дону: «Известия вузов. Северо-Кавказский регион. Технические науки», 2006.
4. Замятин А.В., Сухомлинова В.В. Алгоритм аппроксимации порции поверхности по методу Фергюсона. Депонирована в ВИНИТИ 03.02.06., №120-В2006.
5. Замятин А.В., Сухомлинова В.В. Геометрическое моделирование процесса отражения от поверхности общего вида. - Ростов-на-Дону: РГАСХМ, Межвузовский сборник научных трудов № 9, 2005.
6. Замятин А.В., Сухомлинова В.В., Кубарев А.Е. Геометрическое моделирование процессов отражения от линейчатых поверхностей. - Ростов-на-Дону: Известия РГСУ №6, 2004.
7. Мюллер Дж. Visual C++5. -Санкт-Петербург: BHV, 1988.
8. Секунов Н.Ю. Самоучитель Visual C++6. -Санкт-Петербург: BHV, 1999.
9. Замятин А.В. Алгоритм построения поверхности 2-го порядка, проходящей через три скрещивающиеся прямые. Депонирована в ВИНИТИ 8.08.2003, № 1545-В2003.
10. Замятин А.В. Формообразование поверхностей на основе аппарата кинематики поверхностей 2-го порядка. - Ростов-на-Дону: Издательство РГСУ, 2004.
Размещено на Allbest.ru
...Подобные документы
Геометрические понятия точки, луча и угла. Виды углов: развернутые, острые, прямые, тупые, смежные и вертикальные. Способы построения смежных и вертикальных углов. Равенство вертикальных углов. Проверка знаний на уроке геометрии: определение вида углов.
презентация [13,0 M], добавлен 13.03.2010Теория инвариантов уравнения линии второго порядка от трех переменных, определение канонического уравнения. Общий пример решения задачи на определение вида и расположения поверхности, заданной относительно декартовой прямоугольной системы координат.
курсовая работа [1,1 M], добавлен 02.06.2013Сопряженный оператор. Сопряженная однородная задача. Условия разрешимости. Если иметь дело с граничными условиями общего вида можно выразить какие-либо два из граничных значений через два других.
реферат [61,1 K], добавлен 29.05.2006Написание уравнения прямой, проходящей через определенную точку и удаленной от начала координат на заданное расстояние. Расчет длины высот параллелограмма. Построение плоскости и прямой, определение точки пересечения прямой и плоскости и угла между ними.
контрольная работа [376,1 K], добавлен 16.06.2012Нелинейные уравнения, определение корней. Первая теорема Бальцано-Коши. Метод бисекций (деления пополам) и его алгоритм. Использование линейной интерполяции граничных значений заданной функции в методе хорд. Тестовое уравнение, компьютерный эксперимент.
реферат [104,3 K], добавлен 10.09.2009Тела Платона, характеристика пяти правильных многогранников, их место в системе гармоничного устройства мира И. Кеплера. Агроритм построения треугольника средствами Mathcad. Формирование матрицы вершины координат додекаэдра, график поверхности.
курсовая работа [644,0 K], добавлен 19.12.2010Исследование зависимости погрешности решения от погрешностей правой части системы. Определение корня уравнения с заданной точностью. Вычисление точностных оценок методов по координатам. Сплайн интерполяция и решение дифференциального уравнения.
контрольная работа [323,4 K], добавлен 26.04.2011Представление о взаимном расположении поверхностей в пространстве. Линейчатые и нелинейчатые поверхности вращения. Пересечение кривых поверхностей. Общие сведения о поверхностях. Общий способ построения линии пересечения одной поверхности другою.
реферат [5,4 M], добавлен 10.01.2009Методы построения общего решения уравнения Бернулли. Примеры решения задач с помощью него. Особое решение уравнения Бернулли и его особенности. Понятие дифференциального уравнения, его виды и свойства. Значение уравнения Бернулли в математике и физике.
курсовая работа [183,1 K], добавлен 25.11.2011Классификация различных точек поверхности. Омбилические точки поверхности. Строение поверхности вблизи эллиптической, параболической и гиперболической точек. Линии кривизны поверхности и омбилические точки. Поверхность, состоящая из омбилических точек.
дипломная работа [956,7 K], добавлен 24.06.2015Определение точки пересечения высот треугольника и координат вектора. Сущность базиса системы векторов и его доказательство. Определение производных функций, исследование ее и построение графика. Неопределенные интегралы и их проверка дифференцированием.
контрольная работа [168,7 K], добавлен 26.01.2010Нахождение частных производных по направлению вектора. Составление уравнения касательной плоскости к поверхности в заданной точке. Исследование на экстремум функции двух переменных. Определение условного максимума функции при помощи функции Лагранжа.
контрольная работа [61,5 K], добавлен 14.01.2015Полнота и замкнутость системы булевых функций. Алгоритм построения таблицы истинности двойственной функции. Класс L линейных функций, сущность полинома Жегалкина. Распознавание монотонной функции по вектору ее значений. Доказательство теоремы Поста.
учебное пособие [1,3 M], добавлен 20.08.2014Основные признаки поверхности. Эллипсоид: понятие; плоскости симметрии. Сфера как замкнутая поверхность. Параметрические уравнения тора и катеноида. Общее понятие про геликоид. Параболоид как поверхность вращения. Параметрические уравнения цилиндра.
реферат [950,6 K], добавлен 21.11.2010Алгоритм упорядочивания множества. Определение декартового произведения, его графическая интерпретация. Обратное декартово произведение множеств. Проецирование на оси координат и на координатные плоскости. Область определения и область значений.
лекция [126,5 K], добавлен 18.12.2013Использование численных методов, позволяющих найти приближенное значение определенного интеграла с заданной точностью. Анализ формул трапеции и параболы (Симпсона). Основной принцип построения формул приближенного вычисления определенного интеграла.
презентация [96,6 K], добавлен 18.09.2013Поверхности и ориентация. Теория внутренней поверхности. Выбор ориентации поверхности при помощи выбора базиса касательных векторов. Выбор вектора единичной нормали. Внутренняя геометрия поверхности, определение развертки и теорема Александрова.
реферат [144,0 K], добавлен 07.12.2012Понятие и способы образования плоских и кривых линий. Примеры пересечения алгебраической кривой линии. Поверхность в геометрии. Аргументы вектор-функции. Уравнения семейства линий. Способ построения касательной и нормали в произвольной точке лемнискаты.
контрольная работа [329,5 K], добавлен 19.12.2014Вычисление общего решения дифференциальных уравнений первого порядка с разделяющимися переменными. Расчет определенного интеграла с точностью до 0,001. Определение вероятности заданных событий, математического ожидания и дисперсии случайной величины.
контрольная работа [543,4 K], добавлен 21.10.2012Замкнутые пространственные фигуры, ограниченные плоскими многоугольниками. Линейчатые поверхности вращения. Точка на поверхности тора и сферы. Понятие меридиональной плоскости. Преобразование комплексного чертежа. Метод замены плоскостей проекций.
презентация [69,8 K], добавлен 27.10.2013