Алгоритм построения луча от поверхности общего вида

Программный алгоритм построения луча, отраженного от поверхности общего вида. Вычисление координат точки пересечения луча с поверхностью с заданной точностью. Расчет значений свободных членов системы. Определение коэффициентов уравнения лучевой плоскости.

Рубрика Математика
Вид лекция
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.