- •Лабораторная работа № 4 Геометрические преобразования
- •Системы координат и векторы
- •Уравнения прямой и плоскости
- •2 Аналитическое представление кривых и поверхностей
- •3 Пересечение луча с плоскостью и сферой
- •4 Интерполяция функций одной и двух переменных
- •5 Матрицы
- •6 Геометрические преобразования (перенос, масштабирование, вращение)
- •7 Переход в другую систему координат
- •8 Задача вращения относительно произвольной оси
- •Изучив теорию и методические указания к проведению лр, сформулировать и письменно ответить на вопросы для защиты данной лабораторной работы.
4 Интерполяция функций одной и двух переменных
Помимо функций, заданных аналитически (т. е. с помощью элементарных функций, значения которых легко могут быть вычислены в любой точке области определения), на практике часто приходится иметь дело с таблично заданными функциями. В этом случае функция задается своими значениями на некотором дискретном множестве точек (узлов) из области определения. Если необходимо получить значение функции в какой-либо точке, не совпадающей с узлом, используют различные методы приближенного вычисления, которые основываются на некоторых априорных предположениях относительно этой функции. При этом сама процедура вычисления называется интерполяцией в случае, когда точка принадлежит заданной области, и экстраполяцией, если она лежит вне области.
В качестве предположений о характере дискретно заданной функции наиболее часто используемой и простой является то, что она кусочно- линейная, т. е. что в промежутках между узлами она ведет себя в соответствии с линейным законом. Тогда интерполяция называется линейной, и этот метод мы будем довольно часто применять в алгоритмах компьютерной графики.
Пусть на плоскости задана система координат и отрезокна оси, на концах которого заданы значениянекоторой линейной функции (Рисунок 4.3). Тогда для любой точкивнутри заданного отрезка соответствующее значениевычисляется по формулам
Рисунок 4.3. Линейная интерполяция функции одной переменной
Обратимся теперь к задаче интерполяции функций двух переменных. В этом случае наиболее простой также является интерполяция по трем заданным точкам опять же с помощью кусочно-линейной функции. Пусть на плоскости задан треугольник с вершинами и заданы значения функции в этих точках. Тогда три точкиопределяют в пространстве треугольник, который является плоской фигурой. Предполагается, что площадь треугольника больше нуля, или, как говорят, треугольник невырожденный. Для определения значения функции в произвольной точке, лежащей внутри треугольника, воспользуемся так называемыми барицентрическими координатамиэтой точки. Геометрический смысл этих координат заключается в том, что они равны отношению площадей треугольников, изображенных на рисунке 4.4:
Рисунок 4.4. Линейная интерполяция функции двух переменных
Эти числа неотрицательны и удовлетворяют следующим соотношениям:
Эти соотношения будем рассматривать как уравнения для нахождения чисел .
Определитель этой системы уравнений есть
и он по модулю равен удвоенной площади треугольника, поэтому , следовательно, система имеет единственное решение при любой правой части. Воспользуемся формулами Крамера и выпишем вид этого решения:
где
После того как получены барицентрические координаты точки , значение функции в ней рассчитывается по формуле
Существуют хорошо разработанные методы гладкой интерполяции функций. Особенно часто при интерполяции кривых и поверхностей используются сплайн-функции, которые гладко "склеиваются" из полиномов. Среди них следует выделить кубические сплайны, которые строятся из полиномов третьей степени. Они широко используются в инженерной геометрии благодаря простоте их вычисления и другим полезным свойствам. Мы их рассмотрим подробнее в последующих главах.